Last active
July 10, 2019 20:01
-
-
Save gingerbeardman/79d6df2ab08033a37f5eb23162fa6a4c to your computer and use it in GitHub Desktop.
PostScript listing from page 16 of VERBUM issue 1.3 (Fall 1987)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{inHard Disk: Full Polys} | |
{ps} | |
/TurnXYZ | |
{ ax /mat1 mat0 store mat1 rotate transform 3 -1 roll | |
ay /mat1 mat0 store mat1 rotate transform 3 -1 roll | |
az /mat1 mat0 store mat1 rotate transform 3 -1 roll | |
} def | |
/DrawFace | |
{ Vertex face 3 get get aload pop TurnXYZ pop moveto | |
4 1 face length 1 sub | |
{Vertex face 3 -1 roll get get aload pop TurnXYZ pop lineto} | |
for | |
closepath | |
/angcos x px mul y py mul z pz mul add add size psize mul sqrt div def | |
angcos | |
1 add 2 div | |
dup 0 lt {pop 0} if | |
dup gsave setgray fill grestore | |
2 exp setgray stroke | |
/n n 1 add def | |
} def | |
/FindFace | |
{ /face exch def | |
face 0 get face 1 get face 2 get TurnXYZ | |
/z exch def /y exch def /x exch def | |
z lim gt {DrawFace} if | |
} def | |
/WhichFaces | |
{ /which exch def | |
which sizes length lt {/size sizes which get def} if | |
ranges which get 1 ranges which 1 add get 1 sub {solid exch get FindFace} for | |
} def | |
/FaceNos | |
{ gsave | |
/rad exch def | |
translate | |
rad rad scale | |
0 setlinewidth | |
/solid exch def | |
/faces solid length 3 sub def | |
/sets solid faces 1 add get def | |
/ranges [0 sets {1 index add} forall] def | |
/sizes solid faces 2 add get def | |
/multi sets length sizes length gt def | |
/n 0 def | |
multi {WhichFaces} {0 1 sets length 1 sub {WhichFaces} for} ifelse | |
grestore | |
} def | |
/lim 0.000001 def | |
/mat0 matrix def /mat1 6 array def | |
/px -1 def /py 1 def /pz 1 def /psize 3 def | |
/ax 0 def /ay 0 def /az 0 def | |
297 423 translate 0.84 dup scale -306 -396 translate 75 2 -1 atan {pop} setscreen 0.8 setgray | |
%statusdict begin 11.5 72 mul 9 72 mul 9 0 setpageparams end 18 18 translate | |
-18 -18 moveto -18 810 lineto 630 810 lineto 630 -18 lineto closepath clip fill | |
{inHard Disk:Logos:Coarse} | |
{ps} | |
gsave | |
63 -63 translate | |
/ang -30 def | |
45 | |
{ Icosahedron 72 ang cos mul 72 ang sin mul 24 FaceNos | |
Dodecahedron -72 ang cos mul -72 ang sin mul 24 FaceNos | |
6 12 translate 1.03 dup scale /ang ang 24 add store | |
/ax ax 12 add store /ay ay 4 add store /az az 1 add store | |
} repeat | |
grestore | |
0 -18 moveto 0 0 9 270 180 arcn -18 0 lineto | |
-18 792 moveto 0 792 9 180 90 arcn 0 810 lineto | |
612 810 moveto 612 792 9 90 0 arcn 630 792 lineto | |
630 0 moveto 612 0 9 360 270 arcn 612 -18 lineto | |
1 setgray stroke |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment