a
    åIþf˜  ã                   @   sX   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rTeƒ Z
ee
ƒ eƒ  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 ]J}|  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   ú&lib/python3.9/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| ¡ qb|  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¡ q˜|  	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   s>   |d| k rd S |   |¡ |  |¡ |  |d|  ||¡ d S ©Né   gR¸…ëQØ?)r   r!   r.   ©r   ÚsideZangr   r   r   r   r.   m   s    

zDesigner.pentlc                 C   s>   |d| k rd S |   |¡ |  |¡ |  |d|  ||¡ d S r/   )r   r   r-   r1   r   r   r   r-   s   s    

zDesigner.pentrc                 C   sh   |d| k rd S |   |¡ |  d¡ |   |d ¡ |  d¡ |   |d ¡ |  d¡ |  |d |¡ d S ©Nr   éo   g{®Gázü?gÍÌÌÌÌÌô?é’   g      è?)r   r   r&   ©r   r2   r   r   r   r   r&   y   s    



zDesigner.tripolyrc                 C   sh   |d| k rd S |   |¡ |  d¡ |   |d ¡ |  d¡ |   |d ¡ |  d¡ |  |d |¡ d S r3   )r   r!   r(   r6   r   r   r   r(   ƒ   s    



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   r0   zruntime: %.2f sec.)	r   ZspeedZ
hideturtler   Zdelayr   Úclockr   r   )ÚtZatZetr   r   r   Úmain“   s    
r>   Ú__main__N)Ú__doc__Zturtler   r   Útimer   r<   r   r>   r9   ÚmsgÚprintr   r   r   r   Ú<module>   s   u