
    #e                     x    d Z ddlmZmZ ddlmZ  G d de      Zd Ze	dk(  r e       Z
 ee
        e        yy)	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                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)Designerc                 n   | j                          t        d      D ]{  }| j                  d|z         | j                          | j	                  | j                         |       | j                          | j                  d|z         | j                  d       } | j                          | j                  |       | j                  d       | j                  d|z         | j                  d       | j                          | j                  d|z  d|       | j                         j                  d	       y )
N   g)P@H   $   g     8@   .   ga@T)uprangeforwarddownwheelpositionbackwardrightgotocenterpiece	getscreentracer)selfhomePosscaleis       'lib/python3.12/turtledemo/bytedesign.pydesignzDesigner.design    s    	q 	ALL'IIKJJt}}.GGIMM%%-(JJrN	 				'

2TE\"

3		eUE2%    c                 B   | j                  d       t        d      D ]  }| j                  ||        | j                          | j	                  d       t        d      D ]  }| j                  ||        | j	                  d       t        d      D ][  }| j                          | j                  d       | j                  d|z         | j                          | j                  d|z         ] | j	                  d       | j                         j                          y )N6      r   r	   r
      )r   r   	pentpiecer   lefttripiecer   r   r   r   update)r   initposr   r   s       r   r   zDesigner.wheel2   s    

2q 	+ANN7E*	+				"q 	*AMM'5)	*		"q 	&AIIKJJrNLLe$GGIMM"u*%	& 			"!r    c                 .   | j                         }| j                          | j                  d|z         | j                  d|z  |       | j	                          | j                  |       | j                  |       | j                          | j                  d|z         | j                  d|z  |       | j	                          | j                  |       | j                  |       | j                  d       | j                         j                          y )Ng      @g     ?@r
   )headingr   r   tripolyrr   r   
setheadingtripolylr&   r   r(   )r   r)   r   oldhs       r   r'   zDesigner.tripieceD   s    ||~		cEk"dUlE*			'		cEk"dUlE*			'		"!r    c                 &   | j                         }| j                          | j                  d|z         | j                          t	        d      D ]'  }| j                  d|z         | j                  d       ) | j                  d|z  d|       | j                          | j                  |       | j                  |       | j                  d|z         | j                          t	        d      D ]'  }| j                  d|z         | j                  d       ) | j                  d|z  d|       | j                          | j                  |       | j                  |       | j                  d       | j                         j                          y )N   r	      r
   K   )r+   r   r   r   r   r   pentrr   r-   pentlr&   r   r(   )r   r)   r   r/   r   s        r   r%   zDesigner.pentpieceU   s0   ||~	R%Z 		q 	ALLe$JJrN	 	

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

2:r5)			'		"!r    c                     |d|z  k  ry | j                  |       | j                  |       | j                  |d|z  z
  ||       y N   gRQ?)r   r&   r5   r   sideangr   s       r   r5   zDesigner.pentlm   s@    1u9vT		#

43;'e4r    c                     |d|z  k  ry | j                  |       | j                  |       | j                  |d|z  z
  ||       y r7   )r   r   r4   r9   s       r   r4   zDesigner.pentrs   s@    1u9vT

3

43;'e4r    c                    |d|z  k  ry | j                  |       | j                  d       | j                  |dz         | j                  d       | j                  |dz         | j                  d       | j                  |dz  |       y Nr#   o   g{Gz?g?   g      ?)r   r   r,   r   r:   r   s      r   r,   zDesigner.tripolyry   so    1u9vT

3TD[!

3TCZ 

3dSj%(r    c                    |d|z  k  ry | j                  |       | j                  d       | j                  |dz         | j                  d       | j                  |dz         | j                  d       | j                  |dz  |       y r>   )r   r&   r.   rA   s      r   r.   zDesigner.tripolyl   so    1u9vT		#TD[!		#TCZ 		#dSj%(r    c                     | j                  |       | j                  |       |d|z  k  ry | j                  |d|z  z
  ||       y )Ng      @g333333?)r   r&   r   )r   sar   s       r   r   zDesigner.centerpiece   sA    Q1ecEk*Au5r    N)__name__
__module____qualname__r   r   r'   r%   r5   r4   r,   r.   r    r    r   r   r      s/    &$"$"""055))6r    r   c                  L   t               } | j                  d       | j                          | j                         j	                  d       | j                         j                  d       t               }| j                  | j                         d       t               }d||z
  z  S )Nr   r8   zruntime: %.2f sec.)	r   speed
hideturtler   delayr   clockr   r   )tatets      r   mainrR      sv    
AGGAJLLNKKMKKM	BHHQZZ\1	B2b5))r    __main__N)__doc__turtler   r   timer   rN   r   rR   rF   msgprintrI   r    r   <module>rY      sH   . $ &s6v s6j	* z
&C	#JJ r    