Retour

cone_object.tex

Télécharger le fichier
\makeatletter
\pstheader{cone.pro}
\define@key[psset]{pst-V3D}{A}{\def\psk@IIID@A{#1}}
\define@key[psset]{pst-V3D}{fracHeight}{\edef\psk@IIID@fracHeight{#1}} % fraction de la hauteur du cone
\psset[pst-V3D]{fracHeight=1}
\define@key[psset]{pst-V3D}{nF}{\def\pst@VIIID@nF{#1}} % nombre de facettes > 20
\define@key[psset]{pst-V3D}{nH}{\def\pst@VIIID@nH{#1}} % nombre de mailles en hauteur
\psset[pst-V3D]{nF=20,nH=5}
 
 
\def\psCone{\pst@object{psCone}}
\def\psCone@i(#1,#2,#3)#4#5{{%{{%
  \begin@ClosedObj
    \use@par
    \addto@pscode{%
    1 setlinejoin
    \tx@parametresIIID
    ConeDict begin
    /CX #1 def
    /CY #2 def
    /CZ #3 def
    /Rcone #4 def
    /Hcone #5 def
    /AngleCone Rcone Hcone atan def
    /TanAngleCone AngleCone dup sin exch cos div def
    /fracHeight \psk@IIID@fracHeight\space def
   /incrementANGLE {360 \pst@VIIID@nF\space div} bind def
   /incrementHAUTEUR #5 fracHeight mul \pst@VIIID@nH\space div 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
/condition {PSfacette 0 ge} def
/ChangeSigne {1 mul} def
cone
Bases
\ifPst@interior
H_S exch /h ED /s ED
/ChangeSigne { -1 mul } def
/H_S { h dup mul s 2 div } def
/condition {PSfacette 0 le} def
PSbaseSupCone 0 ge {
gsave
FaceSup clip
cone
FaceSup
0 setgray stroke
grestore } if
PSbaseInfCone 0 ge {
FaceInf clip
cone
FaceInf
0 setgray stroke } if
 \else
PSbaseSupCone 0 ge {
gsave
FaceSup
H_S 1 sethsbcolor fill
FaceSup
0 setgray stroke
grestore } if
PSbaseInfCone 0 ge {
FaceInf
H_S 1 sethsbcolor fill
FaceInf
0 setgray stroke } if
\fi
 end
}% fin du code ps
    \end@ClosedObj%
}}
\makeatother