blob: b1042b572fba23529fc2804af4aa0d78facfcb8a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
-- hilbert.c
-- Hilbert curve
-- Luiz Henrique de Figueiredo (lhf@csg.uwaterloo.ca)
-- 10 Nov 95
$debug
dofile("ps.lua")
function p()
PS.lineto(x,y)
end
function a(n)
if (n==0) then return else n=n-1 end
d(n); y=y+h; p(); a(n); x=x+h; p(); a(n); y=y-h; p(); b(n);
end
function b(n)
if (n==0) then return else n=n-1 end
c(n); x=x-h; p(); b(n); y=y-h; p(); b(n); x=x+h; p(); a(n);
end
function c(n)
if (n==0) then return else n=n-1 end
b(n); y=y-h; p(); c(n); x=x-h; p(); c(n); y=y+h; p(); d(n);
end
function d(n)
if (n==0) then return else n=n-1 end
a(n); x=x+h; p(); d(n); y=y+h; p(); d(n); x=x-h; p(); c(n);
end
function hilbert(n)
PS.open("hilbert curve")
h=2^(9-n)
x=0
y=0
PS.moveto(x,y)
a(n)
PS.close()
end
hilbert(5)
|