
    d                         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             dS dS )	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                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )Designerc                    |                                   t          d          D ]}|                     d|z             |                                  |                     |                                 |           |                                   |                     d|z             |                     d           |                                   |                     |           |                     d           |                     d|z             |                     d           |                                  | 	                    d|z  d|           | 
                                                    d	           d S )
N   g)P@H   $   g     8@   .   ga@T)uprangeforwarddownwheelpositionbackwardrightgotocenterpiece	getscreentracer)selfhomePosscaleis       '  /croot/python-split_1694437901252/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/turtledemo/bytedesign.pydesignzDesigner.design    s7   			q 	 	ALL'''IIKKKJJt}}...GGIIIMM%%-(((JJrNNNN					'

2TE\"""

3		eUE222%%%%%    c                    |                      d           t          d          D ]}|                     ||           |                                  |                     d           t          d          D ]}|                     ||           |                     d           t          d          D ]o}|                                  |                      d           |                     d|z             |                                  |                     d|z             p|                     d           | 	                                
                                 d S )N6      r   r	   r
      )r   r   	pentpiecer   lefttripiecer   r   r   r   update)r   initposr   r   s       r   r   zDesigner.wheel2   s2   

2q 	+ 	+ANN7E****				"q 	* 	*AMM'5))))		"q 	& 	&AIIKKKJJrNNNLLe$$$GGIIIMM"u*%%%%		"!!!!!r    c                    |                                  }|                                  |                     d|z             |                     d|z  |           |                                  |                     |           |                     |           |                                  |                     d|z             |                     d|z  |           |                                  |                     |           |                     |           |                     d           | 	                                
                                 d S )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                    |                                  }|                                  |                     d|z             |                                  t	          d          D ]/}|                     d|z             |                     d           0|                     d|z  d|           |                                  |                     |           |                     |           |                     d|z             |                                  t	          d          D ]/}|                     d|z             |                     d           0| 	                    d|z  d|           |                                  |                     |           |                     |           | 
                    d           |                                                                  d S )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   s   ||~~			R%Z   		q 	 	ALLe$$$JJrNNNN

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

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

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

3

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

3TD[!!!

3TCZ   

3dSj%(((((r    c                 V   |d|z  k     rd S |                      |           |                     d           |                      |dz             |                     d           |                      |dz             |                     d           |                     |dz  |           d S r>   )r   r&   r.   rA   s      r   r.   zDesigner.tripolyl   s    1u9vvT		#TD[!!!		#TCZ   		#dSj%(((((r    c                     |                      |           |                     |           |d|z  k     rd S |                     |d|z  z
  ||           d S )Ng      @g333333?)r   r&   r   )r   sar   s       r   r   zDesigner.centerpiece   sZ    Q1eFcEk*Au55555r    N)__name__
__module____qualname__r   r   r'   r%   r5   r4   r,   r.   r    r    r   r   r      s        & & &$" " "$" " """ " "05 5 55 5 5) ) )) ) )6 6 6 6 6r    r   c                     t                      } |                     d           |                                  |                                                     d           |                                                     d           t                      }|                     |                                 d           t                      }d||z
  z  S )Nr   r8   zruntime: %.2f sec.)	r   speed
hideturtler   delayr   clockr   r   )tatets      r   mainrR      s    

AGGAJJJLLNNNKKMMKKMM	BHHQZZ\\1	B2b5))r    __main__N)__doc__turtler   r   timer   rN   r   rR   rF   msgprintrI   r    r   <module>rY      s    . $ # # # # # # # & & & & & &s6 s6 s6 s6 s6v s6 s6 s6j	* 	* 	* z
$&&C	E#JJJHJJJJJ r    