Penrose tiling: Difference between revisions

Content added Content deleted
m (→‎{{header|Wren}}: Changed to Wren S/H)
(Added Easylang)
Line 158: Line 158:
{{out}}
{{out}}
[[Media:Penrose tiling cpp.svg]]
[[Media:Penrose tiling cpp.svg]]

=={{header|EasyLang}}==
[https://easylang.online/show/#cod=jVRNb6MwFLz7V4ws1MNaRk2z2z356F+BfDAfaa26gGy2If9+9QATN8lKKyFkZsbz/B4DYxga+HiJ3TzCd1+dRwk7u+GzQPjju1hUBiUDcBoCPKZhVRECwPYFFDjfHknTFHA94hSadxvi5rXxm8RB4YA4dSNeVsd+L3ZVAnCnhDsDhab4xgJUTO0SCBzMraIOnf3A4RtcskdL6uUpK5KoeLZjGontF7ZkJYuTbT4qOlYFw8Y0xzbYc1LPuMD2b/D9G8rVz7u+O7t2esdzeSTgc/jqSMj+Y3zutDbMNb8ee4ZQaIaI1gX8oFpX7kJcdP0jjk6SCgPo/O4uM3faKBV1ca8TNzrxD12V6dLUnhTmh+jlIdq6cO9rMl8PtcRo25OPR22gh8SLyYeTM3lyqJmdy/CsAOTxiufvMAWHIrLFgEZQGyHub5zt3xjFiFsO3mghWi2llLWuZLOsrDZCcPCagwuCWl0tMIkMMQ0Hl1YLUetKCLGaGMnBW2IkAUJYXYl2WdXa0F5OWQLnMCz9BH7efv5sDCmGtwH/9UzX8RW/GfsL Run it]

<syntaxhighlight>
proc lsysexp level . axiom$ rules$[] .
for l to level
an$ = ""
for c$ in strchars axiom$
for i = 1 step 2 to len rules$[]
if rules$[i] = c$
c$ = rules$[i + 1]
break 1
.
.
an$ &= c$
.
swap axiom$ an$
.
.
stack[] = [ ]
proc lsysdraw axiom$ x y ang lng . .
linewidth 0.3
move x y
for c$ in strchars axiom$
if c$ = "E"
x += cos dir * lng
y += sin dir * lng
line x y
elif c$ = "-"
dir -= ang
elif c$ = "+"
dir += ang
elif c$ = "["
stack[] &= x
stack[] &= y
stack[] &= dir
elif c$ = "]"
l = len stack[]
x = stack[l - 2]
y = stack[l - 1]
dir = stack[l]
len stack[] -3
move x y
.
.
.
axiom$ = "[b]++[b]++[b]++[b]++[b]"
rules$[] = [ "a" "cE++dE----bE[-cE----aE]++" "b" "+cE--dE[---aE--bE]+" "c" "-aE++bE[+++cE++dE]-" "d" "--cE++++aE[+dE++++bE]--bE" "E" "" ]
lsysexp 4 axiom$ rules$[]
lsysdraw axiom$ 50 50 36 7
</syntaxhighlight>


=={{header|FreeBASIC}}==
=={{header|FreeBASIC}}==