Sierpinski triangle: Difference between revisions
Content deleted Content added
Simpler D code |
→{{header|PostScript}}: cleaner version |
||
Line 1,170: | Line 1,170: | ||
%%BoundingBox 0 0 300 300 |
%%BoundingBox 0 0 300 300 |
||
/ |
/f { 1 0 translate } def |
||
/ |
/l { 1 0 lineto f } def |
||
/ |
/r { 120 rotate } def |
||
/d { gsave 0 s moveto 150 r 0 1 l 120 r 0 1 l closepath fill grestore } def |
|||
/S { gsave dup 1 sub dup |
|||
/serp { gsave 3 1 roll translate .5 -.5 scale d 1 -1 scale |
|||
0 eq { 0 0 moveto l r l fill } |
|||
{ .5 .5 scale f S S S } ifelse |
|||
⚫ | |||
dup cos s mul exch sin s mul |
|||
⚫ | |||
3 -1 roll serp |
|||
} for |
|||
} if pop |
|||
⚫ | |||
⚫ | |||
300 300 scale |
300 300 scale 0 1 12 div translate |
||
d 1 setgray |
|||
0 0 6 serp |
|||
8 S pop |
|||
showpage |
showpage |
||
%%EOF |
%%EOF |