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}}== |