Hilbert curve: Difference between revisions

→‎{{header|Fōrmulæ}}: Added L-system solution
imported>Tromp
(→‎{{header|Fōrmulæ}}: Added L-system solution)
(2 intermediate revisions by 2 users not shown)
Line 477:
As shown in https://www.ioccc.org/2012/tromp/hint.html, the 142+3 byte BLC program
 
<syntaxhighlightpre>0000000 18 18 18 18 11 11 54 68 06 04 15 5f f0 41 9d f9
0000020 de 16 ff fe 5f 3f ef f6 15 ff 94 68 40 58 11 7e
0000040 05 cb fe bc bf ee 86 cb 94 68 16 00 5c 0b fa cb
Line 486:
0000160 18 58 1b fe 5c 10 42 ff 80 5d ee c0 6c 2c 0c 06
0000200 08 19 1a 00 16 7f bc bc fd f6 5f 7c 0a 20 31 32
0000220 33</syntaxhighlightpre>
 
(consisting of the 142 byte binary prefix https://github.com/tromp/AIT/blob/master/hilbert followed by "123") outputs the 3rd order Hilbert curve
 
<syntaxhighlightpre> _ _ _ _
| |_| | | |_| |
|_ _| |_ _|
Line 497:
|_| _| |_ |_|
_ |_ _| _
| |___| |___| |</syntaxhighlightpre>
 
=={{header|BQN}}==
Line 1,402:
=={{header|Forth}}==
{{trans|Yabasic}}
{{works with|4tH |v3.62}}
<syntaxhighlight lang="forth">include lib/graphics.4th
 
64 constant /width \ hilbertHilbert curve order^2
9 constant /length \ length of a line
 
Line 1,434:
color_image 255 whiteout blue \ paint blue on white
0 dup origin! \ set point of origin
0 dup /width over dup hilbert \ hilbertHilbert curve, order=8
s" ghilbert.ppm" save_image \ save the image
</syntaxhighlight>
Line 1,468:
 
'''Solution'''
 
=== Recursive ===
 
The following defines a function that creates a graphics of the Hilbert curve of a given order and size:
Line 1,480 ⟶ 1,482:
 
[[File:Fōrmulæ - Hilbert curve 03.png|279px]]
 
=== L-system ===
 
There are generic functions written in Fōrmulæ to compute an L-system in the page [[L-system#Fōrmulæ | L-system]].
 
The program that creates a Hilbert curve is:
 
[[File:Fōrmulæ - L-system - Hilbert curve 01.png]]
 
[[File:Fōrmulæ - L-system - Hilbert curve 02.png]]
 
=={{header|Frink}}==
2,120

edits