\makeatletter % version 01 : 7 août 2006 10 h 00 \pstheader{cube_shadow.pro} \define@key[psset]{pst-V3D}{A}{\def\psk@IIID@A{#1}} % largeur \define@key[psset]{pst-V3D}{B}{\def\psk@IIID@B{#1}} % longueur \define@key[psset]{pst-V3D}{C}{\def\psk@IIID@C{#1}} % hauteur \define@key[psset]{pst-V3D}{d}{\def\psk@IIID@d{#1}} % fraction d'arete \psset[pst-V3D]{A=2,B=A,C=A,d=5} % source de la lumière \define@key[psset]{pst-V3D}{thetaLight}{\def\pst@VIIID@thetaLight{#1}} % longitude \define@key[psset]{pst-V3D}{phiLight}{\def\pst@VIIID@phiLight{#1}} % latitude \define@key[psset]{pst-V3D}{dLight}{\def\pst@VIIID@dLight{#1}} % distance source \psset[pst-V3D]{thetaLight=70,phiLight=90,dLight=20} \define@key[psset]{pst-V3D}{transparence}{\def\pst@VIIID@transparence{#1}} % distance source \psset[pst-V3D]{transparence=0.5} \def\psCube{\pst@object{psCube}} \def\psCube@i(#1,#2,#3){{% \begin@ClosedObj \use@par \addto@pscode{% 1 setlinejoin \tx@parametresIIID % les coordonnées de la source lumineuse /xLight {\pst@VIIID@thetaLight\space cos \pst@VIIID@phiLight\space cos mul \pst@VIIID@dLight\space mul} bind def /yLight {\pst@VIIID@thetaLight\space sin \pst@VIIID@phiLight\space cos mul \pst@VIIID@dLight\space mul} bind def /zLight {\pst@VIIID@phiLight\space sin \pst@VIIID@dLight\space mul} bind def /transparence {\pst@VIIID@transparence} def % \ifPst@visibility /condition { PSfacette 0 gt } def \else /condition { PSfacette 0 le} def \fi /RotX \psk@IIID@RotX\space def /RotY \psk@IIID@RotY\space def /RotZ \psk@IIID@RotZ\space def /A \psk@IIID@A\space def /B \psk@IIID@B\space def /C \psk@IIID@C\space def /d \psk@IIID@d\space def /CX #1 def /CY #2 def /CZ #3 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 CUBE }% fin du code ps \end@ClosedObj% }} \makeatother