
   ^                       S r SSK7  SSKJrJr  SSKJrJr  Sr	S\" S\-  S-  5      -  r
S	 rS
 rS rS rSS jrS rS rS rS rSS\SS4S jr\4S jrS r\S:X  a  \" 5       r\" 5         gg)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                     [         U -  n[        S5        [        U 5        [        S5        [        U5        [        S5        [        U5        [        S5        [        U 5        [        S5        g )N$   l      fltfdrtlfls     )/usr/lib/python3.13/turtledemo/penrose.pykiter      J    	
QBrFqEsGrFrFrFsGqEsG    c                     [         U -  n[        S5        [        U 5        [        S5        [        U5        [        S5        [        U5        [        S5        [        U 5        [        S5        g )Nr   r   r   r   s     r   dartr   %   r   r   c                     US:X  aB  [        5       u  p#[        [        5       5      [        US5      [        US5      penS[        XEU4'   g [
        U -  n[        S5        [        XqS-
  5        [        U 5        [        S5        [        XqS-
  5        [        S5        [        U [        -  5        [        S5        [        XqS-
  5        [        S5        [        U 5        [        S	5        [        XqS-
  5        [        S5        g )
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gi.%1+uR{a !a	
QBrFaCqEsGaCrFqsGsGaCrFqEsGaCrFr   c                    US:X  aB  [        5       u  p#[        [        5       5      [        US5      [        US5      penS[        XEU4'   g [
        U -  n[        XqS-
  5        [        S5        [        U 5        [        S5        [        XqS-
  5        [        S5        [        U [        -  5        [        S5        [        XqS-
  5        [        U 5        [        S	5        g )
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gi.%1+uR{a!!a	
QBaCrFqEsGaCrFqsGsGaCqEsGr   c                 4   [        5         U [        U-  -  n [        U S-  U S-  U5        [         He  nUu  pEn[	        XV5        [        U5        [        U   (       a  [        S5        [        SS5        O[        S5        [        SS5        [        5         Mg     g )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   sw    	G	AqDAagqw#aq1A;&M'<(&M'<( r   c                 T    [        S5       H  n[        X5        [        S5        M     g N   H   )ranger(   r   r   r+   is      r   sunrH   j       1XA
2 r   c                 T    [        S5       H  n[        X5        [        S5        M     g rB   )rE   r'   r   rF   s      r   starrK   o   rI   r   c                      [        S5        [        5         [        S5        [        5         [	        S[        5       5        [        5         [        S5        [        5         [	        S[        5       5        [        S5        g )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    [        5         [        5         [        5         [        5         [	        S5        g )Nuser)resethtpurT   
resizemoderS   r   r   startr[      s    	GDDLvr         )r   r   c                    [        U5        [        S5        0 q[        S5        U" X5        [	        XU5        [        S5        [        [         Vs/ s H  n[        U   (       d  M  UPM     sn5      n[        [         Vs/ s H  n[        U   (       a  M  UPM     sn5      n[        SXgXg-   4-  5        g s  snf s  snf )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IrN
1I	1AXa[a1	2B	5A!a5	6B	
.""%
@A 25s   B6&B6 B;B;c                     [        5         [        S5       H=  n[        5       n[        SX5        [        5       nX2-
  nUS:  d  M/  [	        SU-
  5        M?     g )N   i,  r   )r[   rE   clockrf   r   )rb   rG   abts        r   demorm      sF    	G1XGS!GEq5!a%L r   c                      [        S5        [        SSS5        [        [        5        [	        S5        [        [
        5        [        S5        [        SS5        [        SSS5        [        S	S
SS9  [        SSSS9  g)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   