%! /page-begin { gsave /S 72 def S dup scale 1 S div setlinewidth 4 5 translate } def /page-end { grestore showpage } def (ps3d.inc) run /y 2 2 sqrt mul 3 div def /z -1 3 div def % exaggerate perspective: [ 0 0 2 1 ] set-eye /dA 10 def % to eliminate redundant yping: /tv [ % for Tetrahedron-Vertex [ 0 0 1 ] [ 0 y z ] [ y 3 sqrt 2 div neg y 2 div neg z ] [ y 3 sqrt 2 div y 2 div neg z ] ] def 100 { page-begin newpath % top edges tv 0 get aload pop moveto3d tv 1 get aload pop lineto3d tv 0 get aload pop moveto3d tv 2 get aload pop lineto3d tv 0 get aload pop moveto3d tv 3 get aload pop lineto3d % bottom tv 1 get aload pop moveto3d tv 2 get aload pop lineto3d tv 3 get aload pop lineto3d tv 1 get aload pop lineto3d stroke page-end % rotate around the x-axis [ 1 0 0 ] dA rotate3d } repeat