\makeatletter \pstheader{dodecahedron.pro} \define@key[psset]{pst-V3D}{radius}{\def\psk@IIID@R{#1}} % rayon de la sphère circonscrite \define@key[psset]{pst-V3D}{d}{\def\psk@IIID@d{#1}} % fraction arete \psset[pst-V3D]{d=3,radius=3} \def\psDodecahedron{\pst@object{psDodecahedron}} \def\psDodecahedron@i(#1,#2,#3){{% \begin@ClosedObj \use@par \addto@pscode{% 1 setlinejoin \ifPst@visibility /condition { PSfacette 0 gt } def \else /condition { PSfacette 0 le} def \fi \tx@parametresIIID DodecahedronDict begin /radius \psk@IIID@R\space def /d \psk@IIID@d\space def /CX #1 def /CY #2 def /CZ #3 def /c2 {RotY cos} bind def /s2 {RotY sin} bind def /c3 {RotZ cos} bind def /s3 {RotZ sin} bind def /c1 {RotX cos} bind def /s1 {RotX sin} bind def %% les coefficients de la matrice de transformation %% de l'objet /M11 {c2 c3 mul} bind def /M12 {c3 s1 mul s2 mul c1 s3 mul sub} bind def /M13 {c1 c3 mul s2 mul s1 s3 mul add} bind def /M21 {c2 s3 mul} bind def /M22 {s1 s2 mul s3 mul c1 c3 mul add} bind def /M23 {s3 s2 mul c1 mul c3 s1 mul sub} bind def /M31 {s2 neg} bind def /M32 {s1 c2 mul} bind def /M33 {c1 c2 mul} bind def %% /PointsApresTransformations { 3 dict begin M11 Xpoint mul M12 Ypoint mul add M13 Zpoint mul add CX add M21 Xpoint mul M22 Ypoint mul add M23 Zpoint mul add CY add M31 Xpoint mul M32 Ypoint mul add M33 Zpoint mul add CZ add end } def Dodecahedron end} % fin du code ps \end@ClosedObj% }} \makeatother