
    #e                     v    d Z ddl ddlmZmZ  G d de      Zd Ze	dk(  r e       Z
 ee
        e        yy)	a&        turtle-example-suite:

        tdemo_fractalCurves.py

This program draws two fractal-curve-designs:
(1) A hilbert curve (in a box)
(2) A combination of Koch-curves.

The CurvesTurtle class and the fractal-curve-
methods are taken from the PythonCard example
scripts for turtle-graphics.
    )*)sleepperf_counterc                       e Zd Zd Zd Zd Zy)CurvesTurtlec                    |dk(  ry | j                  |dz         | j                  ||dz
  |        | j                  |       | j                  |dz         | j                  ||dz
  |       | j                  |       | j                  ||dz
  |       | j                  |dz         | j                  |       | j                  ||dz
  |        | j                  |dz         y )Nr   Z      )lefthilbertforwardright)selfsizelevelparitys       *lib/python3.12/turtledemo/fractalcurves.pyr   zCurvesTurtle.hilbert   s    A:		&2+T519vg.T

6B;T519f-TT519f-

6B;TT519vg. 			&2+    c                    dd l }d|z  |j                  |j                  |z        z  }| j                          | j	                  |       | j                          | j                  dd|dz
  z  |z  z
         t        |      D ])  }| j                  |||       | j                  d|z         + | j                  dd|dz
  z  |z  z
         | j                          | j                  |       | j                          y )Nr         r	   ih  )mathsinpipufdpdrtrangefractalltbk)r   nradlevdirr   edgeis           r   
fractalgonzCurvesTurtle.fractalgon/   s     3w$''A+..		rQU|a'()q 	ALLsC(GGC!G	 	rQU|a'()		r   c                 r   |dk  r| j                  |       y | j                  |dz  |dz
  |       | j                  d|z         | j                  |dz  |dz
  |       | j                  d|z         | j                  |dz  |dz
  |       | j                  d|z         | j                  |dz  |dz
  |       y )Nr
      <   x   )r   r    r!   r   )r   distdepthr&   s       r   r    zCurvesTurtle.fractalB   s    19GGDMTAXuqy#.STAXuqy#.c	TAXuqy#.STAXuqy#.r   N)__name__
__module____qualname__r   r)   r     r   r   r   r      s    
2&
/r   r   c                     t               } | j                          | j                  d       | j                          | j	                         j                  dd       | j                          d}| j                  d|z  d|z         | j                          t               }| j                  d       | j                          | j                  |       | j                  |dd       | j                  |       t        d      D ]-  }| j                  d       | j                  |d	|d
z  z   z         / | j                          t        d
      D ]$  }| j                  |       | j!                  d       & | j                          t        d      D ]-  }| j                  |d|d
z  z   z         | j!                  d       / | j#                          t               }d||z
  z  }t%        d       | j                          | j                  d       | j                          | j	                         j                  dd       t               }| j'                  dd       | j                          | j)                  dddd       | j#                          | j                          | j'                  d       | j)                  dddd       | j#                          t               }|d||z
  z  z  }|S )Nr   r
      iiredr+   r	   @   r      B   zHilbert: %.2fsec. blackblue      zKoch: %.2fsec.)r   resetspeedht	getscreentracerr   setposr   clock	fillcolor
begin_fillr   r   r   r!   r   end_fillr   colorr)   )ftr   tar(   tbress         r   mainrN   N   s:   	BHHJHHQKEEGLLN!AEEGDIIc$hD!EEGwBLLMMOEE$KJJtQ EE$K1X 
b	
dBqsFm EEG1X 
d
b	 EEG1X 
dBqsFm
b	 KKMwB2b5)C	!HHHJHHQKEEGLLN!AwBHHWfMMOMM!S!QKKMMMOHHUOMM!S!R KKMwB2&&CJr   __main__N)__doc__turtletimer   r   rE   Penr   rN   r0   msgprintmainloopr3   r   r   <module>rW      sG     -;/3 ;/z7r 

&C	#JJ r   