
   *y!                   x    S r SSK7  SSKJrJr   " S S\5      rS r\	S:X  a  \" 5       r
\" \
5        \" 5         gg)	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                   &    \ rS rSrS rS rS rSrg)CurvesTurtle   c                    US:X  a  g U R                  US-  5        U R                  XS-
  U* 5        U R                  U5        U R                  US-  5        U R                  XS-
  U5        U R                  U5        U R                  XS-
  U5        U R                  US-  5        U R                  U5        U R                  XS-
  U* 5        U R                  US-  5        g )Nr   Z      )lefthilbertforwardright)selfsizelevelparitys       //usr/lib/python3.13/turtledemo/fractalcurves.pyr   CurvesTurtle.hilbert   s    A:		&2+T19vg.T

6B;T19f-TT19f-

6B;TT19vg. 			&2+    c                    SS K nSU-  UR                  UR                  U-  5      -  nU R                  5         U R	                  U5        U R                  5         U R                  SSUS-
  -  U-  -
  5        [        U5       H)  nU R                  XcU5        U R                  SU-  5        M+     U R                  SSUS-
  -  U-  -
  5        U R                  5         U R                  U5        U R                  5         g )Nr         r
   ih  )mathsinpipufdpdrtrangefractalltbk)r   nradlevdirr   edgeis           r   
fractalgonCurvesTurtle.fractalgon/   s     3w$''A+..		rQU|a'()qALLC(GGC!G  	rQU|a'()		r   c                 t   US:  a  U R                  U5        g U R                  US-  US-
  U5        U R                  SU-  5        U R                  US-  US-
  U5        U R                  SU-  5        U R                  US-  US-
  U5        U R                  SU-  5        U R                  US-  US-
  U5        g )Nr      <   x   )r   r"   r#   r    )r   distdepthr(   s       r   r"   CurvesTurtle.fractalB   s    19GGDMTAXuqy#.STAXuqy#.c	TAXuqy#.STAXuqy#.r    N)__name__
__module____qualname____firstlineno__r   r+   r"   __static_attributes__r4   r   r   r   r      s    
2&
/r   r   c                     [        5       n U R                  5         U R                  S5        U R                  5         U R	                  5       R                  SS5        U R                  5         SnU R                  SU-  SU-  5        U R                  5         [        5       nU R                  S5        U R                  5         U R                  U5        U R                  USS5        U R                  U5        [        S5       H.  nU R                  S5        U R                  US	US
-  -   -  5        M0     U R                  5         [        S
5       H%  nU R                  U5        U R!                  S5        M'     U R                  5         [        S5       H.  nU R                  USUS
-  -   -  5        U R!                  S5        M0     U R#                  5         [        5       nSXB-
  -  n[%        S5        U R                  5         U R                  S5        U R                  5         U R	                  5       R                  SS5        [        5       nU R'                  SS5        U R                  5         U R)                  SSSS5        U R#                  5         U R                  5         U R'                  S5        U R)                  SSSS5        U R#                  5         [        5       nUSXB-
  -  -  nU$ )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   mainrT   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25)C	!HHHJHHQKEEGLLN!AwBHHWfMMOMM!S!QKKMMMOHHUOMM!S!R KKMwB&&CJr   __main__N)__doc__turtletimer   r   rK   Penr   rT   r5   msgprintmainloopr4   r   r   <module>r]      sG     -;/3 ;/z7r 

&C	#JJ r   