@@ -87,6 +87,32 @@ function Get-Turtle {
8787                $sideCount 
8888            } 
8989        ) 
90+     . EXAMPLE  
91+         # We can morph any N shapes with the same number of points.         
92+         turtle square 42 morph @( 
93+             turtle square 42 
94+             turtle rotate 45 square 42 
95+             turtle square 42 
96+         ) 
97+     . EXAMPLE  
98+         # This animates the path of the turtle. 
99+         # If we want to morph a smaller shape into a bigger shape, 
100+         # we can duplicate more lines 
101+         turtle polygon 21 6 morph @( 
102+             turtle @('forward', 21,'backward', 21 * 3) 
103+             turtle polygon 21 6 
104+             turtle @('forward', 21,'backward', 21 * 3) 
105+         ) 
106+     . EXAMPLE  
107+         # We can repeat steps by multiplying arrays. 
108+         # Lets repeat a hexagon three times with a rotation 
109+         turtle ('polygon', 23, 6, 'rotate', -120 * 3) 
110+     . EXAMPLE  
111+         # Let's change the angle a bit and see how they overlap         
112+         turtle ('polygon', 23, 6, 'rotate', -60 * 6) 
113+     . EXAMPLE  
114+         # Let's do the same thing, but with a smaller angle 
115+         turtle ('polygon', 23, 6, 'rotate', -40 * 9) 
90116    . EXAMPLE  
91117        # A flower is a series of repeated polygons and rotations 
92118        turtle Flower     
@@ -99,6 +125,14 @@ function Get-Turtle {
99125    . EXAMPLE  
100126        # Flowers get more dense as we decrease the angle and increase the repetitions. 
101127        turtle Flower 50 5 (3..12 | Get-Random) 72 
128+     . EXAMPLE          
129+         # Flowers look especially beautiful as they morph 
130+         $sideCount = (3..12 | Get-Random)         
131+         turtle Flower 50 15 $sideCount 36 morph @( 
132+             turtle Flower 50 10 $sideCount 72 
133+             turtle rotate (Get-Random -Max 360 -Min 180) Flower 50 5 $sideCount 72 
134+             turtle Flower 50 10 $sideCount 72 
135+         )         
102136    . EXAMPLE  
103137        # We can draw a pair of arcs and turn back after each one.         
104138        # We call this a 'petal'. 
@@ -114,7 +148,25 @@ function Get-Turtle {
114148        turtle FlowerPetal 42 10 (10..50 | Get-Random) 36 
115149    . EXAMPLE  
116150        # Flower Petals get less dense as we increase the angle and decrease repetitions 
117-         turtle FlowerPetal 50 20 (20..72 | Get-Random) 18     
151+         turtle FlowerPetal 50 20 (20..72 | Get-Random) 18 
152+     . EXAMPLE  
153+         # Flower Petals look amazing when morphed 
154+         $Radius = 23..42 | Get-Random 
155+         $flowerAngle = 30..60 | Get-Random 
156+         $AngleFactor = 2..6 | Get-Random 
157+         $flowerPetals = turtle rotate ( 
158+             (Get-Random -Max 180) * -1 
159+         ) flowerPetal $radius 10 $flowerAngle $stepCount     
160+         $flowerPetals2 = turtle rotate ( 
161+             (Get-Random -Max 180) 
162+         ) flowerPetal $radius ( 
163+             10 * $AngleFactor 
164+         ) $flowerAngle $stepCount 
165+         turtle flowerPetal $radius 10 $flowerAngle $stepCount morph ( 
166+             $flowerPetals,  
167+             $flowerPetals2, 
168+             $flowerPetals 
169+         ) 
118170    . EXAMPLE  
119171        # We can construct a 'scissor' by drawing two lines at an angle 
120172        turtle Scissor 42 60 
@@ -140,21 +192,69 @@ function Get-Turtle {
140192        # We can draw an outward spiral by growing a bit each step 
141193        turtle StepSpiral 
142194    . EXAMPLE  
143-         turtle StepSpiral 42 120 4 18  
195+         turtle StepSpiral 42 120 4 18 
196+     . EXAMPLE  
197+         # Because Step Spirals are a fixed number of steps,         
198+         # they are easy to morph. 
199+         turtle StepSpiral 42 120 4 18 morph @( 
200+             turtle StepSpiral 42 90 4 24 
201+             turtle StepSpiral 42 120 4 24 
202+             turtle StepSpiral 42 90 4 24             
203+         ) 
144204    . EXAMPLE  
145205        turtle @('StepSpiral',3, 120, 'rotate',60 * 6) 
146206    . EXAMPLE  
147207        turtle @('StepSpiral',3, 90, 'rotate',90 * 4) 
208+     . EXAMPLE  
209+         # Step spirals look lovely when morphed 
210+         # 
211+         # (especially when reversing angles) 
212+         turtle @('StepSpiral',3, 120, 'rotate',60 * 6) morph @( 
213+             turtle @('StepSpiral',3, 120, 'rotate',60 * 6) 
214+             turtle @('StepSpiral',6, -120, 'rotate',120 * 6) 
215+             turtle @('StepSpiral',3, 120, 'rotate',60 * 6) 
216+         ) 
217+     . EXAMPLE          
218+         # When we reverse the spiral angle, the step spiral curve flips 
219+         turtle @('StepSpiral',3, 90, 'rotate',90 * 4) morph @( 
220+             turtle @('StepSpiral',3, 90, 'rotate',90 * 4) 
221+             turtle @('StepSpiral',3, -90, 'rotate',90 * 4) 
222+             turtle @('StepSpiral',3, 90, 'rotate',90 * 4) 
223+         ) 
224+     . EXAMPLE  
225+         # When we reverse the rotation, the step spiral curve slides 
226+         turtle @('StepSpiral',3, 90, 'rotate',90 * 4) morph @( 
227+             turtle @('StepSpiral',3, 90, 'rotate',90 * 4) 
228+             turtle @('StepSpiral',3, 90, 'rotate',-90 * 4) 
229+             turtle @('StepSpiral',3, 90, 'rotate',90 * 4) 
230+         ) 
231+     . EXAMPLE  
232+         # We we alternate, it looks amazing 
233+         turtle @('StepSpiral',3, 90, 'rotate',90 * 4) morph @( 
234+             turtle @('StepSpiral',3, 90, 'rotate',90 * 4) 
235+             turtle @('StepSpiral',3, 90, 'rotate',-90 * 4) 
236+             turtle @('StepSpiral',3, 90, 'rotate',90 * 4) 
237+             turtle @('StepSpiral',3, -90, 'rotate',90 * 4) 
238+             turtle @('StepSpiral',3, 90, 'rotate',90 * 4)             
239+         ) 
240+     . EXAMPLE          
241+         turtle @('StepSpiral',3, 120, 'rotate',60 * 6) morph @( 
242+             turtle @('StepSpiral',3, 120, 'rotate',60 * 6) 
243+             turtle @('StepSpiral',6, -120, 'rotate',120 * 6) 
244+             turtle @('StepSpiral',3, 120, 'rotate',60 * 6) 
245+             turtle @('StepSpiral',6, 120, 'rotate',-120 * 6) 
246+             turtle @('StepSpiral',3, 120, 'rotate',60 * 6) 
247+         ) 
148248    . EXAMPLE  
149249        turtle spirolateral 
150250    . EXAMPLE  
151251        turtle spirolateral 50 60 10 
152252    . EXAMPLE  
153-         turtle spirolateral 50 120 6 @(1,3) 
253+         turtle spirolateral 50 120 6 @(1,3)              
154254    . EXAMPLE  
155255        turtle spirolateral 23 144 8 
156256    . EXAMPLE  
157-         turtle spirolateral 23 72 8 
257+         turtle spirolateral 23 72 8      
158258    . EXAMPLE  
159259        # Turtle can draw a number of fractals         
160260        turtle BoxFractal 42 4 
@@ -170,6 +270,9 @@ function Get-Turtle {
170270    . EXAMPLE  
171271        # We can make a Pentaplexity 
172272        turtle Pentaplexity 42 3 
273+     . EXAMPLE  
274+         # We can make a Triplexity 
275+         turtle Triplexity 42 4 
173276    . EXAMPLE  
174277        # We can draw the Koch Island  
175278        turtle KochIsland 42 4 
@@ -179,6 +282,9 @@ function Get-Turtle {
179282    . EXAMPLE  
180283        # We can make a Koch Snowflake 
181284        turtle KochSnowflake 42  
285+     . EXAMPLE  
286+         # We can draw the Levy Curve 
287+         turtle LevyCurve 42 6 
182288    . EXAMPLE  
183289        # We can use a Hilbert Curve to fill a space 
184290        Turtle HilbertCurve 42 4 
@@ -198,7 +304,7 @@ function Get-Turtle {
198304        # The SierpinskiTriangle is a Fractal classic     
199305        turtle SierpinskiTriangle 42 4 
200306    . EXAMPLE  
201-         # We can draw a 'Sierpinski Snowflake' by rotating and drawing  multiple Sierpinski Triangles 
307+         # We can draw a 'Sierpinski Snowflake' with  multiple Sierpinski Triangles.  
202308        turtle @('rotate', 30, 'SierpinskiTriangle',42,4 * 12) 
203309    . EXAMPLE          
204310        turtle @('rotate', 45, 'SierpinskiTriangle',42,4 * 24) 
@@ -267,7 +373,7 @@ function Get-Turtle {
267373                #  otherwise, leave the argument alone.
268374                $arg 
269375            }
270-         })
376+         })     
271377
272378        #  Now that we have a series of words, we can process them.
273379        #  We want to keep track of the current member, 
@@ -282,7 +388,7 @@ function Get-Turtle {
282388            $arg  =  $wordsAndArguments [$argIndex ]
283389            #  If the argument is not in the member names list, we can complain about it.
284390            if  ($arg  -notin  $memberNames ) {                
285-                 if  (-not  $currentMember  -and  $arg  -is  [string ]) {
391+                 if  (-not  $currentMember  -and  $arg  -is  [string ]  -and   " $arg " .Trim() ) {
286392                    Write-Warning  " Unknown command '$arg '." 
287393                }
288394                continue 
0 commit comments