middle and center are synonymous (and can be used in both horizontal and vertical directions).
Robby On Sat, Nov 14, 2009 at 10:42 AM, Matthias Felleisen <matth...@ccs.neu.edu> wrote: > > This should be > > (overlay/places "center" "middle" > (rotate 0 a) > (rotate 20 a) > (rotate 40 a) > (rotate 60 a)) > > not > > .. "middle" "middle" ... > > correct? > > > On Nov 14, 2009, at 1:18 AM, John Clements wrote: > >> >> On Sep 26, 2009, at 6:29 AM, Matthias Felleisen wrote: >> >>> >>> >>> 1. htdp/world is deprecated, use 2htdp/universe instead. >>> >>> 2. we consider the pinhole approach to our image library as a mistake. To >>> solve the problem Robby is working on 2htdp/image, a replacement for the >>> image library. When it comes out (end of semester probably) it will support >>> rotate and other such operations, plus comparisons will be much faster. >> >> I'm surprised to say it, but right now I'm *really missing the pinhole*. >> >> I'm trying to write a function in 2htdp/image that draws, say, 36 copies of >> a shape arranged in a big "circle" around a center. With pinholes, this was >> easy. Move the pinhole way off to the left, then rotate the thing around >> the pinhole by 10 degrees, 20 degrees, etc. Overlay them all, and you're >> done. [*] >> >> With the new approach, I'm finding this nearly impossible. The natural >> approach involves, for instance, putting the thing "beside" a long >> horizontal space, and then rotating it. The problem is that it doesn't >> rotate about a fixed point. To see the problem, consider this program: >> >> (require 2htdp/image) >> >> (define a (beside (rectangle 150 2 "solid" "black") (ellipse 10 50 "solid" >> "purple"))) >> >> (overlay/places "middle" "middle" >> (rotate 0 a) >> (rotate 20 a) >> (rotate 40 a) >> (rotate 60 a)) >> >> The problem is that mapping a point in the pre-rotation shape to a point in >> the post-rotation shape is hard. >> >> ... >> >> After wrestling with this for quite a while, I have a solution of sorts; you >> have to overlay the shape you want to rotate on a large outline circle in >> such a way that the shape is entirely inside the circle. Rotating this shape >> does not change the bounding box at all, meaning that you can overlay them >> correctly. Needless to say, computing the size of the circle required is a >> big pain. >> >> E.G.: >> >> (define b (overlay/xy (circle 200 "outline" "blue") 200 200 a)) >> >> (overlay >> (rotate 0 b) >> (rotate 20 b) >> (rotate 40 b) >> (rotate 60 b)) >> >> Am I missing something obvious? >> >> John >> >> [*] with the obvious caveat that the old version didn't rotate shapes at all. >> >> >> _________________________________________________ >> For list-related administrative tasks: >> http://list.cs.brown.edu/mailman/listinfo/plt-dev > > _________________________________________________ For list-related administrative tasks: http://list.cs.brown.edu/mailman/listinfo/plt-dev