Another nice thing about this kind of circle function: adventurous students can read the source code and see how simple turtle commands combine to draw a circle. I suspect that's more instructive than seeing calls to some other graphics library.
Toby On 3/24/06, Chris <[EMAIL PROTECTED]> wrote: > > There are at least two problems with the present circle function. 1) > Gregor has pointed out the oddity of the filling. (As I understand it, > it's odd in that the filling occurs inside the circle that is drawn and > you may have been trying to draw a figure with circle segments and you > actually wanted the bounded region to be filled but the bounded region > is actually on the exterior of a circle that was used--see the yin() > function of Gregor's recent post.) 2) From a pedagogical point of > view, the fact that the circle is drawn without respect to speed is not > good. It's instructive, for example, to see how Gregor's yin-yang image > is drawn, but by using the present circle() you can't really follow the > progress. > > Here's a prototype (less smart than the present circle, but heading in > the right direction, I hope) that fixes both of these issues. It draws > a circle as approximated by a polygon. Since it only uses forward() and > turns, it responds to the speed setting. If you run Gregor's yin() > demo, you will see it fill properly, too. > > ### > def circle(r, xtnt=360.0, segs=30): > '''use the forward() and turn primitives to draw a circle as a > polygon''' > th=xtnt/float(segs) > h=2*abs(r)*sin(th*pi/180) #would be better to compute segs > #so that h is some fraction of > window size > forward(h/2.0) > if r<0: > turn=right > else: > turn=left > for i in xrange(segs-1): > turn(th) > forward(h) > turn(th) > forward(h/2.0) > ### > > /chris -- Dr. Toby Donaldson School of Computing Science Simon Fraser University (Surrey) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "edupython" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/edupython -~----------~----~----~----~------~----~------~--~---
