
   4%j                   z    S r SSKJrJr  SSKJr   " S S\5      rS r\	S:X  a  \" 5       r
\" \
5        \" 5         gg)	a  turtle-example-suite:

        tdemo_bytedesign.py

An example adapted from the example-suite
of PythonCard's turtle graphics.

It's based on an article in BYTE magazine
Problem Solving with Logo: Using Turtle
Graphics to Redraw a Design
November 1982, p. 118 - 134

-------------------------------------------

Due to the statement

t.delay(0)

in line 152, which sets the animation delay
to 0, this animation runs in "line per line"
mode as fast as possible.
    )Turtlemainloop)perf_counterc                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)Designer   c                 r   U R                  5         [        S5       H|  nU R                  SU-  5        U R                  5         U R	                  U R                  5       U5        U R                  5         U R                  SU-  5        U R                  S5        M~     U R                  5         U R                  U5        U R                  S5        U R                  SU-  5        U R                  S5        U R                  5         U R                  SU-  SU5        U R                  5       R                  S	5        g )
N   g)P@H   $   g     8@   .   ga@T)uprangeforwarddownwheelpositionbackwardrightgotocenterpiece	getscreentracer)selfhomePosscaleis       ,/usr/lib/python3.13/turtledemo/bytedesign.pydesignDesigner.design    s    	qALL'IIKJJt}}.GGIMM%%-(JJrN  				'

2TE\"

3		eUE2%    c                 J   U R                  S5        [        S5       H  nU R                  X5        M     U R                  5         U R	                  S5        [        S5       H  nU R                  X5        M     U R	                  S5        [        S5       H\  nU R                  5         U R                  S5        U R                  SU-  5        U R                  5         U R                  SU-  5        M^     U R	                  S5        U R                  5       R                  5         g )N6      r   r
   r      )r   r   	pentpiecer   lefttripiecer   r   r   r   update)r   initposr   r   s       r   r   Designer.wheel2   s    

2qANN7* 				"qAMM') 		"qAIIKJJrNLLe$GGIMM"u*%  			"!r"   c                 .   U R                  5       nU R                  5         U R                  SU-  5        U R                  SU-  U5        U R	                  5         U R                  U5        U R                  U5        U R                  5         U R                  SU-  5        U R                  SU-  U5        U R	                  5         U R                  U5        U R                  U5        U R                  S5        U R                  5       R                  5         g )Ng      @g     ?@r   )headingr   r   tripolyrr   r   
setheadingtripolylr(   r   r*   )r   r+   r   oldhs       r   r)   Designer.tripieceD   s    ||~		cEk"dUlE*			'		cEk"dUlE*			'		"!r"   c                 .   U R                  5       nU R                  5         U R                  SU-  5        U R                  5         [	        S5       H(  nU R                  SU-  5        U R                  S5        M*     U R                  SU-  SU5        U R                  5         U R                  U5        U R                  U5        U R                  SU-  5        U R                  5         [	        S5       H(  nU R                  SU-  5        U R                  S5        M*     U R                  SU-  SU5        U R                  5         U R                  U5        U R                  U5        U R                  S5        U R                  5       R                  5         g )N   r
      r   K   )r.   r   r   r   r   r   pentrr   r0   pentlr(   r   r*   )r   r+   r   r2   r   s        r   r'   Designer.pentpieceU   s&   ||~	R%Z 		qALLe$JJrN  	

2:r5)			'R%Z 		qALLe$JJrN  	

2:r5)			'		"!r"   c                     USU-  :  a  g U R                  U5        U R                  U5        U R                  USU-  -
  X#5        g N   gRQ?)r   r(   r9   r   sideangr   s       r   r9   Designer.pentlm   s>    1u9vT		#

43;'4r"   c                     USU-  :  a  g U R                  U5        U R                  U5        U R                  USU-  -
  X#5        g r<   )r   r   r8   r>   s       r   r8   Designer.pentrs   s>    1u9vT

3

43;'4r"   c                    USU-  :  a  g U R                  U5        U R                  S5        U R                  US-  5        U R                  S5        U R                  US-  5        U R                  S5        U R                  US-  U5        g Nr%   o   g{Gz?g?   g      ?)r   r   r/   r   r?   r   s      r   r/   Designer.tripolyry   so    1u9vT

3TD[!

3TCZ 

3dSj%(r"   c                    USU-  :  a  g U R                  U5        U R                  S5        U R                  US-  5        U R                  S5        U R                  US-  5        U R                  S5        U R                  US-  U5        g rE   )r   r(   r1   rH   s      r   r1   Designer.tripolyl   so    1u9vT		#TD[!		#TCZ 		#dSj%(r"   c                     U R                  U5        U R                  U5        USU-  :  a  g U R                  USU-  -
  X#5        g )Ng      @g333333?)r   r(   r   )r   sar   s       r   r   Designer.centerpiece   s?    Q1ecEk*A5r"    N)__name__
__module____qualname____firstlineno__r    r   r)   r'   r9   r8   r/   r1   r   __static_attributes__rP   r"   r   r   r      s/    &$"$"""055))6r"   r   c                  J   [        5       n U R                  S5        U R                  5         U R                  5       R	                  S5        U R                  5       R                  S5        [        5       nU R                  U R                  5       S5        [        5       nSX!-
  -  $ )Nr   r=   zruntime: %.2f sec.)	r   speed
hideturtler   delayr   clockr    r   )tatets      r   mainr^      st    
AGGAJLLNKKMKKM	BHHQZZ\1	B25))r"   __main__N)__doc__turtler   r   timer   rZ   r   r^   rQ   msgprintrP   r"   r   <module>re      sH   . $ &s6v s6j	* z
&C	#JJ r"   