B
    ^ cd                 @   s   d Z ddlT ddlmZmZ ddlmZmZ dZ	dede d  Z
d	d
 Zdd Zdd Zdd Zd&ddZdd Zdd Zdd Zdd ZddeddfddZefd d!Zd"d# Zed$kre Ze  d%S )'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             C   sT   t |  }td t|  td t| td t| td t|  td d S )N$   l      )fltfdrt)lfl r   #lib/python3.7/turtledemo/penrose.pykite   s    r   c             C   sT   t |  }td t|  td t| td t| td t|  td d S )Nr
   r   )r   r   r   r   )r   r   r   r   r   dart%   s    r   c             C   s   |dkrFt  \}}tt t|dt|d  }}}dt|||f< d S t|  }td t||d  t|  t	d t
||d  td t| t  t	d t
||d  td t|  t	d	 t||d  td d S )
Nr   r   Tr
      r            )posintheadingroundtiledictr   r   inflatedartr   r   inflatekited)r   npxpyhxyr   r   r   r   r!   1   s(    
"r!   c             C   s   |dkrFt  \}}tt t|dt|d  }}}dt|||f< d S t|  }t||d  td t|  t	d t
||d  td t| t  t	d t
||d  t|  t	d	 d S )
Nr   r   Fr   r
   r   6   ~   r   )r   r   r   r   r   r   r!   r   r   r   r    r"   )r   r#   r$   r%   r&   r'   r(   r   r   r   r   r    G   s"    
"r    c             C   s   t   | t|  } t| d | d | x\tD ]T}|\}}}t|| t| t| rhtd tdd ntd tdd t  q,W d S )Ng      Y@r   black)r   g      ?r   r   )g      ?r   r   )	clearr   Z	shapesizer   Zsetpos
setheadingshapeZcolorZstamp)r   r#   thkr&   r'   r(   r   r   r   drawZ   s    



r1   c             C   s(   x"t dD ]}t| | td q
W d S )N   H   )ranger!   r   )r   r#   ir   r   r   sunj   s    
r6   c             C   s(   x"t dD ]}t| | td q
W d S )Nr2   r3   )r4   r    r   )r   r#   r5   r   r   r   staro   s    
r7   c               C   sT   t d t  td t  tdt  t  td t  tdt  t d d S )Nr   d   r   r   r   )tracerZ
begin_polyr   Zend_polyZregister_shapeZget_polyr   r   r   r   r   
makeshapest   s    r:   c               C   s$   t   t  t  t  td d S )Nuser)resetZhtZpur:   Z
resizemoder   r   r   r   start   s
    r=         )r   r   c       
      C   s   t | td i at }td || | t }t| || td t }tdd tD }tdd tD }	td||	||	 f  d S )Nr   r   c             S   s   g | ]}t | r|qS r   )r   ).0r'   r   r   r   
<listcomp>   s    ztest.<locals>.<listcomp>c             S   s   g | ]}t | s|qS r   )r   )r@   r'   r   r   r   rA      s    z"%d kites and %d darts = %d pieces.)gotor-   r   clockr9   r1   lenprint)
r   r#   funstartposr/   abcZnkZndr   r   r   test   s    
rK   c             C   sP   t   xDtdD ]8}t }td||  t }|| }|dk rtd|  qW d S )N   i,  r   )r=   r4   rC   rK   r   )rF   r5   rH   rI   tr   r   r   demo   s    rN   c               C   sj   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d t	dddd dS )NZlogog333333?r   r   r+   i8gffffff?r   zPlease wait...center)zArial Blackr
   Zbold)ZalignZfontiX  rL   )F   u   )rG   ZDone)
modeZbgcolorrN   r6   r   r7   ZpencolorrB   writerK   r   r   r   r   main   s    

rT   __main__N)r   )__doc__ZturtleZmathr   r   Ztimer   rC   r   r   r"   r   r   r!   r    r1   r6   r7   r:   r=   rK   rN   rT   __name__msgZmainloopr   r   r   r   <module>   s(   

