Retour

tour_object.tex

Télécharger le fichier
\makeatletter
\pstheader{tour.pro}
 
\define@key[psset]{pst-V3D}{R}{\def\pst@VIIID@R{#1}} % rayon base
\define@key[psset]{pst-V3D}{r}{\def\pst@VIIID@r{#1}} % rayon sommet
\define@key[psset]{pst-V3D}{H}{\def\pst@VIIID@H{#1}} % hauteur totale
\define@key[psset]{pst-V3D}{h}{\def\pst@VIIID@h{#1}} % hauteur base
\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]{R=8,H=10,r=3,h=1}%
\psset[pst-V3D]{nF=36,nH=20}%
 
 
\def\psTour{\pst@object{psTour}}
\def\psTour@i(#1,#2,#3){{%
% (#1,#2,#3) coordonnées du centre
% #4 rayon #5 hauteur
  \begin@ClosedObj%
    \use@par
    \addto@pscode{%
    1 setlinejoin
    \tx@parametresIIID
    TourDict begin
/dT {360 \pst@VIIID@nF\space div} bind def
/H \pst@VIIID@H\space def
/R \pst@VIIID@R\space def
/r \pst@VIIID@r\space def
/a H R r sub div def
/r0 a H div r add def
/dr {R r0 sub \pst@VIIID@nH\space div} bind def
/h a R r sub div def
/dh {H h sub \pst@VIIID@nH\space div} bind def
%/incrementHAUTEUR H \pst@VIIID@nH\space div 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
/condition {PSfacette 0 gt} def
/ChangeSigne {1 mul} def
MaillageTour
%\ifPst@interior
% /interior {
Haut clip
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
%prisme
%stroke} def \else
%/interior { null } def \fi
MaillageTour
% prisme
0 setgray
Haut stroke
end
}% fin du code ps
\end@ClosedObj}}
\makeatother
%