Retour

cube_object_shadow.tex

Télécharger le fichier
\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