Skip to content

Commit 4f2c0a4

Browse files
author
James Brundage
committed
feat: Turtle.PeanoCurve() ( Fixes #68 )
1 parent 6fab35c commit 4f2c0a4

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

Types/Turtle/PeanoCurve.ps1

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<#
2+
.SYNOPSIS
3+
Generates a Peano curve.
4+
.DESCRIPTION
5+
Generates a Peano curve using turtle graphics.
6+
.LINK
7+
https://en.wikipedia.org/wiki/Peano_curve
8+
.EXAMPLE
9+
$turtle = New-Turtle
10+
$turtle.PeanoCurve().Pattern.Save("$pwd/PeanoCurve.svg")
11+
.EXAMPLE
12+
Move-Turtle PeanoCurve 15 5
13+
#>
14+
param(
15+
[double]$Size = 10,
16+
[int]$Order = 5,
17+
[double]$Angle = 90
18+
)
19+
20+
return $this.LSystem('X', @{
21+
X = 'XFYFX+F+YFXFY-F-XFYFX'
22+
Y = 'YFXFY-F-XFYFX+F+YFXFY'
23+
}, $Order, ([Ordered]@{
24+
'\+' = { $this.Rotate($Angle) }
25+
'[F]' = { $this.Forward($Size) }
26+
'\-' = { $this.Rotate($Angle * -1) }
27+
}))

0 commit comments

Comments
 (0)