Skip to content

Commit 3ecd893

Browse files
StartAutomatingStartAutomating
authored andcommitted
feat: Turtle.GosperCurve() ( Fixes #69 )
1 parent dc244f5 commit 3ecd893

File tree

1 file changed

+40
-1
lines changed

1 file changed

+40
-1
lines changed

Turtle.types.ps1xml

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,43 @@ if ($This.IsPenDown) {
236236
return $this
237237
</Script>
238238
</ScriptMethod>
239+
<ScriptMethod>
240+
<Name>GosperCurve</Name>
241+
<Script>
242+
&lt;#
243+
.EXAMPLE
244+
$turtle.Clear().GosperCurve().Pattern.Save("$pwd/GosperCurve.svg")
245+
.EXAMPLE
246+
$turtle.Clear()
247+
$turtle.GosperCurve(20,1,60)
248+
$turtle.PatternTransform = @{
249+
'scale' = 0.5
250+
}
251+
252+
$turtle.PatternAnimation = "
253+
&lt;animateTransform attributeName='patternTransform' attributeType='XML' type='scale' values='1;0.9;1' dur='19s' repeatCount='indefinite' additive='sum' /&gt;
254+
&lt;animateTransform attributeName='patternTransform' attributeType='XML' type='skewY' values='30;-30;30' dur='67s' repeatCount='indefinite' additive='sum' /&gt;
255+
&lt;animateTransform attributeName='patternTransform' attributeType='XML' type='skewX' values='30;-30;30' dur='83s' repeatCount='indefinite' additive='sum' /&gt;
256+
"
257+
$turtle.Pattern.Save("$pwd/GosperCurve2.svg")
258+
#&gt;
259+
param(
260+
[double]$Size = 10,
261+
[int]$Order = 4,
262+
[double]$Angle = 60
263+
)
264+
265+
return $this.LSystem('A', @{
266+
A = 'A-B--B+A++AA+B-'
267+
B = 'A-BB--B-A++A+B'
268+
}, $Order, ([Ordered]@{
269+
'\+' = { $this.Rotate($Angle) }
270+
'[AB]' = { $this.Forward($Size) }
271+
'-' = { $this.Rotate($Angle * -1) }
272+
}))
273+
274+
</Script>
275+
</ScriptMethod>
239276
<ScriptMethod>
240277
<Name>HilbertCurve</Name>
241278
<Script>
@@ -580,7 +617,9 @@ return $this
580617
$turtle = New-Turtle
581618
$turtle.PeanoCurve().Pattern.Save("$pwd/PeanoCurve.svg")
582619
.EXAMPLE
583-
Move-Turtle PeanoCurve 15 5
620+
Move-Turtle PeanoCurve 15 5 |
621+
Set-Turtle Stroke '#4488ff' |
622+
Save-Turtle "./PeanoCurve.svg"
584623
#&gt;
585624
param(
586625
[double]$Size = 10,

0 commit comments

Comments
 (0)