
    #e4                         d Z ddl ddlmZmZ ddlmZmZ dZ	d edez  dz        z  Z
d	 Zd
 Zd Zd ZddZd Zd Zd Zd ZddeddfdZefdZd Zedk(  r e       Z e        yy)a         xturtle-example-suite:

          xtx_kites_and_darts.py

Constructs two aperiodic penrose-tilings,
consisting of kites and darts, by the method
of inflation in six steps.

Starting points are the patterns "sun"
consisting of five kites and "star"
consisting of five darts.

For more information see:
 http://en.wikipedia.org/wiki/Penrose_tiling
 -------------------------------------------
    )*)cospi)perf_countersleepgP/7?      
   c                     t         | z  }t        d       t        |        t        d       t        |       t        d       t        |       t        d       t        |        t        d       y )N$   l      fltfdrtlfls     $lib/python3.12/turtledemo/penrose.pykiter      J    	
QBrFqEsGrFrFrFsGqEsG    c                     t         | z  }t        d       t        |        t        d       t        |       t        d       t        |       t        d       t        |        t        d       y )Nr   r   r   r   s     r   dartr   %   r   r   c                    |dk(  rEt               \  }}t        t                     t        |d      t        |d      }}}dt        |||f<   y t
        | z  }t        d       t        ||dz
         t        |        t        d       t        ||dz
         t        d       t        | t        z         t        d       t        ||dz
         t        d       t        |        t        d	       t        ||dz
         t        d       y )
Nr   r	   Tr      r            )posintheadingroundtiledictr   r   inflatedartr   r   inflatekitedr   npxpyhxyr   s           r   r(   r(   1   s    AvBgi.%1+uR{a1 !Aa	
QBrFAaCqEsGAaCrFqsGsGAaCrFqEsGAaCrFr   c                    |dk(  rEt               \  }}t        t                     t        |d      t        |d      }}}dt        |||f<   y t
        | z  }t        ||dz
         t        d       t        |        t        d       t        ||dz
         t        d       t        | t        z         t        d       t        ||dz
         t        |        t        d	       y )
Nr   r	   Fr   r   r!   6   ~   r   )r"   r#   r$   r%   r&   r   r(   r   r   r   r'   r)   r*   s           r   r'   r'   G   s    AvBgi.%1+uR{a1!!Aa	
QBAaCrFqEsGAaCrFqsGsGAaCqEsGr   c                 *   t                | t        |z  z  } t        | dz  | dz  |       t        D ]a  }|\  }}}t	        ||       t        |       t        |   rt        d       t        dd       nt        d       t        dd       t                c y )Ng      Y@r   black)r         ?r   r   )r6   r   r   )	clearr   	shapesizer&   setpos
setheadingshapecolorstamp)r   r+   thkr.   r/   r0   s          r   drawr@   Z   s    	G	AqDAagqw# 
1aq!1A;&M'<(&M'<(
r   c                 R    t        d      D ]  }t        | |       t        d        y N   H   )ranger(   r   r   r+   is      r   sunrH   j   &    1X Aq
2r   c                 R    t        d      D ]  }t        | |       t        d        y rB   )rE   r'   r   rF   s      r   starrK   o   rI   r   c                      t        d       t                t        d       t                t	        dt                      t                t        d       t                t	        dt                      t        d       y )Nr   d   r   r   r   )tracer
begin_polyr   end_polyregister_shapeget_polyr    r   r   
makeshapesrT   t   sJ    
1ILIJ68:&LIJ68:&
1Ir   c                  j    t                t                t                t                t	        d       y )Nuser)resethtpurT   
resizemoderS   r   r   startr[      s    	GDDLvr         )r   r   c                 d   t        |       t        d       i at        d        || |       t	        | ||       t        d       t        t        D cg c]  }t        |   s| c}      }t        t        D cg c]  }t        |   r| c}      }t        d||||z   fz         y c c}w c c}w )Nr   r   z"%d kites and %d darts = %d pieces.)gotor:   r&   rN   r@   lenprint)r   r+   funstartposr>   r/   nknds           r   testrf      s    NqMH
1I1IArN
1I	1AXa[a1	2B	5A!a5	6B	
."b"R%
@A 25s   B(!B(9B-B-c                     t                t        d      D ]<  }t               }t        d||        t               }||z
  }|dk  s/t	        d|z
         > y )N   i,  r   )r[   rE   clockrf   r   )rb   rG   abts        r   demorm      sO    	G1X GS!SGEq5!a%Lr   c                     t        d       t        ddd       t        t               t	        d       t        t
               t        d       t        dd       t        ddd       t        d	d
d       t        ddd       y)Nlogog333333?r   r   r5   i8gffffff?r   zPlease wait...center)zArial Blackr   bold)alignfontiX  rh   )F   u   )rc   Done)
modebgcolorrm   rH   r   rK   pencolorr_   writerf   rS   r   r   mainr{      sg    LCaI	!HJW4LSQ	
:<a)$r   __main__N)r   )__doc__turtlemathr   r   timer   ri   r   r   r)   r   r   r(   r'   r@   rH   rK   rT   r[   rf   rm   r{   __name__msgmainlooprS   r   r   <module>r      s       -AbDG

,& 


 !u B   z
&CJ r   