
    d                         d Z ddlT ddlmZmZ  G d de          Zd Ze	dk    r! e            Z
 ee
            e             dS dS )	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dS )CurvesTurtlec                 (   |dk    rd S |                      |dz             |                     ||dz
  |            |                     |           |                     |dz             |                     ||dz
  |           |                     |           |                     ||dz
  |           |                     |dz             |                     |           |                     ||dz
  |            |                      |dz             d S )Nr   Z      )lefthilbertforwardright)selfsizelevelparitys       *  /croot/python-split_1694437901252/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/turtledemo/fractalcurves.pyr   zCurvesTurtle.hilbert   s   A::F		&2+T519vg...T

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

6B;TT519vg... 			&2+    c                 N   dd l }d|z  |                    |j        |z            z  }|                                  |                     |           |                                  |                     dd|dz
  z  |z  z
             t          |          D ]1}|                     |||           |                     d|z             2| 	                    dd|dz
  z  |z  z
             |                                  | 
                    |           |                                  d S )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                    |dk     r|                      |           d S |                     |dz  |dz
  |           |                     d|z             |                     |dz  |dz
  |           |                     d|z             |                     |dz  |dz
  |           |                     d|z             |                     |dz  |dz
  |           d S )Nr
      <   x   )r   r    r!   r   )r   distdepthr&   s       r   r    zCurvesTurtle.fractalB   s    199GGDMMMFTAXuqy#...STAXuqy#...c	TAXuqy#...STAXuqy#.....r   N)__name__
__module____qualname__r   r)   r     r   r   r   r      sA        
  2  &
/ 
/ 
/ 
/ 
/r   r   c                  $   t                      } |                                  |                     d           |                                  |                                                     dd           |                                  d}|                     d|z  d|z             |                                  t                      }| 
                    d           |                                  |                     |           |                     |dd           |                     |           t          d          D ]5}|                     d           |                     |d	|d
z  z   z             6|                                  t          d
          D ],}|                     |           |                     d           -|                                  t          d          D ]5}|                     |d|d
z  z   z             |                     d           6|                                  t                      }d||z
  z  }t%          d           |                                  |                     d           |                                  |                                                     dd           t                      }|                     dd           |                                  |                     dddd           |                                  |                                  |                     d           |                     dddd           |                                  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HHJJJHHQKKKEEGGGLLNN!AEEGGGDIIc$hD!!!EEGGGwwBLLMMOOOEE$KKKJJtQ EE$KKK1XX  
b			
dBqsFmEEGGG1XX  
d
b				EEGGG1XX  
dBqsFm
b				KKMMMwwB2b5)C	!HHHHHJJJHHQKKKEEGGGLLNN!AwwBHHWfMMOOOMM!S!QKKMMMMMOOOHHUOOOMM!S!R   KKMMMwwB2&&CJr   __main__N)__doc__turtletimer   r   rE   Penr   rN   r0   msgprintmainloopr3   r   r   <module>rW      s         - - - - - - - -;/ ;/ ;/ ;/ ;/3 ;/ ;/ ;/z7 7 7r 

$&&C	E#JJJHJJJJJ r   