Tizen 2.0 Release
[profile/ivi/cairo.git] / util / cairo-script / examples / hilbert.cs
1 %!CairoScript
2
3 /hA { % cr dist lvl *hA* cr dist
4   dup not { pop } {
5       1 sub
6       3 copy hB 0 exch L pop
7       3 copy hA 0 L pop
8       3 copy hA neg 0 exch L pop
9       hC
10   } ifelse
11 } bind def
12
13 /hB { % cr dist lvl *hB* cr dist
14   dup not { pop } {
15       1 sub
16       3 copy hA 0 L pop
17       3 copy hB 0 exch L pop
18       3 copy hB neg 0 L pop
19       hD
20   } ifelse
21 } bind def
22
23 /hC { % cr dist lvl *hC* cr dist
24   dup not { pop } {
25       1 sub
26       3 copy hD neg 0 L pop
27       3 copy hC neg 0 exch L pop
28       3 copy hC 0 L pop
29       hA
30   } ifelse
31 } bind def
32
33 /hD { % cr dist lvl *hD* cr dist
34   dup not { pop } {
35       1 sub
36       3 copy hC neg 0 exch L pop
37       3 copy hD neg 0 L pop
38       3 copy hD 0 exch L pop
39       hB
40   } ifelse
41 } bind def
42
43 dict
44   /width  1024 set
45   /height 1024 set
46   surface context
47
48 2 2 m 4 10 hA pop 1 g set-source stroke
49
50 /target get (out.png) write-to-png pop
51 pop