o
    JAf˜  ã                   @   s\   d Z ddlmZmZ ddlmZ G dd„ deƒZd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                   @   sT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚDesignerc                 C   s¼   |   ¡  tdƒD ]%}|  d| ¡ |  ¡  |  |  ¡ |¡ |   ¡  |  d| ¡ |  d¡ q|   ¡  |  |¡ |  d¡ |  d| ¡ |  d¡ |  ¡  |  	d| d|¡ |  
¡  d	¡ d S )
Né   gš™™™™)P@éH   é$   g     €8@éÆ   é.   gÍÌÌÌÌìa@T)ÚupÚrangeÚforwardÚdownÚwheelÚpositionÚbackwardÚrightÚgotoÚcenterpieceÚ	getscreenÚtracer)ÚselfZhomePosÚscaleÚi© r   ú,/usr/lib/python3.10/turtledemo/bytedesign.pyÚdesign    s    


zDesigner.designc                 C   s¸   |   d¡ tdƒD ]}|  ||¡ q	|  ¡  |  d¡ tdƒD ]}|  ||¡ q|  d¡ tdƒD ]}|  ¡  |   d¡ |  d| ¡ |  ¡  |  d| ¡ q1|  d¡ |  	¡  
¡  d S )Né6   é   r   r   r   é   )r   r   Ú	pentpiecer   ÚleftÚtripiecer   r   r   r   Úupdate)r   Úinitposr   r   r   r   r   r   2   s    




zDesigner.wheelc                 C   s¦   |   ¡ }|  ¡  |  d| ¡ |  d| |¡ |  ¡  |  |¡ |  |¡ |  ¡  |  d| ¡ |  d| |¡ |  ¡  |  |¡ |  |¡ |  d¡ |  	¡  
¡  d S )Ng      @g     €?@r   )Úheadingr   r   Útripolyrr   r   Ú
setheadingÚtripolylr!   r   r#   )r   r$   r   Úoldhr   r   r   r"   D   s   




zDesigner.tripiecec                 C   sþ   |   ¡ }|  ¡  |  d| ¡ |  ¡  tdƒD ]}|  d| ¡ |  d¡ q|  d| d|¡ |  ¡  |  |¡ |  |¡ |  d| ¡ |  ¡  tdƒD ]}|  d| ¡ |  d¡ qL|  	d| d|¡ |  ¡  |  |¡ |  |¡ |  
d¡ |  ¡  ¡  d S )Né   r   é   r   éK   )r%   r   r   r   r   r   Úpentrr   r'   Úpentlr!   r   r#   )r   r$   r   r)   r   r   r   r   r    U   s,   




zDesigner.pentpiecec                 C   ó>   |d| k rd S |   |¡ |  |¡ |  |d|  ||¡ d S ©Né   gR¸…ëQØ?)r   r!   r.   ©r   ÚsideZangr   r   r   r   r.   m   ó   

zDesigner.pentlc                 C   r/   r0   )r   r   r-   r2   r   r   r   r-   s   r4   zDesigner.pentrc                 C   óh   |d| k rd S |   |¡ |  d¡ |   |d ¡ |  d¡ |   |d ¡ |  d¡ |  |d |¡ d S ©Nr   éo   g{®Gázü?gÍÌÌÌÌÌô?é’   g      è?)r   r   r&   ©r   r3   r   r   r   r   r&   y   ó   



zDesigner.tripolyrc                 C   r5   r6   )r   r!   r(   r9   r   r   r   r(   ƒ   r:   zDesigner.tripolylc                 C   s>   |   |¡ |  |¡ |d| k rd S |  |d|  ||¡ d S )Ng      @g333333ó?)r   r!   r   )r   ÚsÚar   r   r   r   r      s   zDesigner.centerpieceN)Ú__name__Ú
__module__Ú__qualname__r   r   r"   r    r.   r-   r&   r(   r   r   r   r   r   r      s    

r   c                  C   s\   t ƒ } |  d¡ |  ¡  |  ¡  d¡ |  ¡  d¡ tƒ }|  |  ¡ d¡ tƒ }d||  S )Nr   r1   zruntime: %.2f sec.)	r   ZspeedZ
hideturtler   Údelayr   Úclockr   r   )ÚtZatÚetr   r   r   Úmain“   s   
rD   Ú__main__N)Ú__doc__Zturtler   r   Útimer   rA   r   rD   r=   ÚmsgÚprintr   r   r   r   Ú<module>   s   u
ý