[Edu-sig] odd drawing problem with turtle.py

Vern Ceder vceder at canterburyschool.org
Mon Feb 1 14:48:08 CET 2010


Brian Blais wrote:
>> On Jan 31, 2010, at 23:05 , John Posner wrote:
>>
>>> Try commenting out this statement:
>>>
>>>    self.turtle.tracer(False)
>>>
>>> That helps on Python 2.6.4.
> 
> 
> interesting.  It seems as if the tracer property is a global one:

Actually, the tracer method that does the work is part of the 
TurtleScreen class, and individual Turtle instances just access the 
tracer method of the TurtleScreen they inhabit... if that makes sense. 
So since your turtles are on the same screen, yes, in effect, tracer is 
sort of global.

Cheers,
Vern

> 
> In [1]:t1=Turtle()
> 
> In [2]:t1.tracer()
> Out[2]:1
> 
> In [3]:t1.tracer(False)
> 
> In [4]:t1.tracer()
> Out[4]:0
> 
> In [5]:t2=Turtle()
> 
> In [6]:t2.tracer()
> Out[6]:0
> 
> In [7]:t2.tracer(True)
> 
> In [8]:t1.tracer()
> Out[8]:1
> 
> looks like I need to set the tracer manually. 
> 
> however, even if the tracer is off, shouldn't it still draw the line? 
>  when I put in the T.tracer(True) it works, but I shouldn't need to I think.
> 
> 
> On Jan 31, 2010, at 21:11 , kirby urner wrote:
> 
>> I don't see where you've defined a Turtle class to instantiate sir.
> 
> Turtle is given in turtle.py.  I should have subclassed it, but I was 
> being lazy.  :)
> 
> thanks for the fast replies!
> 
> 
> bb
> 
> 
>> On Sun, Jan 31, 2010 at 4:27 PM, Brian Blais <bblais at bryant.edu 
>> <mailto:bblais at bryant.edu>> wrote:
>>> I'm on Python 2.5, but using the updated turtle.py Version 1.0.1 - 24. 9.
>>> 2009.  The following script draws 5 circles, which it is supposed to, but
>>> then doesn't draw the second turtle which is supposed to simply move
>>> forward.  Any ideas?
>>> from turtle import *
>>> from numpy.random import randint
>>> resetscreen()
>>> class Circle(object):
>>>     def __init__(self,x,y,r,color):
>>>         self.x=x
>>>         self.y=y
>>>         self.r=r
>>>         self.color=color
>>>
>>>         self.turtle=Turtle(visible=False)
>>>         self.turtle.tracer(False)
>>>         self.draw()
>>>
>>>     def draw(self):
>>>         self.turtle.penup()
>>>         self.turtle.setposition(self.x,self.y)
>>>         self.turtle.setheading(0)
>>>         self.turtle.backward(self.r)
>>>         self.turtle.pendown()
>>>         self.turtle.fill(True)
>>>         self.turtle.pencolor("black")
>>>         self.turtle.fillcolor(self.color)
>>>         self.turtle.circle(self.r)
>>>         self.turtle.fill(False)
>>>         self.turtle.penup()
>>>
>>> for i in range(5):
>>>     c=Circle(randint(-350,350),randint(-250,250),10,"red")
>>>
>>>
>>> T=Turtle()
>>> T.forward(100)
>>> T.forward(100)
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> thanks,
>>>
>>> bb
>>> --
>>> Brian Blais
>>> bblais at bryant.edu <mailto:bblais at bryant.edu>
>>> http://web.bryant.edu/~bblais
>>> http://bblais.blogspot.com/
>>>
>>>
>>>
>>> _______________________________________________
>>> Edu-sig mailing list
>>> Edu-sig at python.org <mailto:Edu-sig at python.org>
>>> http://mail.python.org/mailman/listinfo/edu-sig
>>>
>>>
> 
> -- 
> Brian Blais
> bblais at bryant.edu <mailto:bblais at bryant.edu>
> http://web.bryant.edu/~bblais
> http://bblais.blogspot.com/
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig

-- 
This time for sure!
    -Bullwinkle J. Moose
-----------------------------
Vern Ceder, Director of Technology
Canterbury School, 3210 Smith Road, Ft Wayne, IN 46804
vceder at canterburyschool.org; 260-436-0746; FAX: 260-436-5137

The Quick Python Book, 2nd Ed - http://bit.ly/bRsWDW


More information about the Edu-sig mailing list