44 lines
1.1 KiB
PostScript
44 lines
1.1 KiB
PostScript
%!PS
|
|
%%BoundingBox: 0 0 550 400
|
|
/ifpendown false def
|
|
/rotation 0 def
|
|
/srootii 2 sqrt def
|
|
/turn {
|
|
rotation add /rotation exch def
|
|
} def
|
|
/forward {
|
|
dup rotation cos mul
|
|
exch rotation sin mul
|
|
ifpendown
|
|
{ rlineto }
|
|
{ rmoveto }
|
|
ifelse
|
|
} def
|
|
/penup {
|
|
/ifpendown false def
|
|
} def
|
|
/pendown {
|
|
/ifpendown true def
|
|
} def
|
|
|
|
/dragon { % [ length, split, d ]
|
|
dup
|
|
dup 1 get 0 eq
|
|
{ 0 get forward }
|
|
{ dup 2 get 45 mul turn
|
|
dup aload pop pop
|
|
1 sub exch srootii div exch
|
|
1 3 array astore dragon pop
|
|
dup 2 get 90 mul neg turn
|
|
dup aload pop pop
|
|
1 sub exch srootii div exch
|
|
-1 3 array astore dragon
|
|
dup 2 get 45 mul turn
|
|
}
|
|
ifelse
|
|
pop
|
|
} def
|
|
150 150 moveto pendown [ 300 12 1 ] dragon stroke
|
|
% 0 0 moveto 550 0 rlineto 0 400 rlineto -550 0 rlineto closepath stroke
|
|
showpage
|
|
%%END
|