\makeatletter
\pstheader{hyperboloid.pro}
\define@key[psset]{pst-V3D}{nF}{\def\pst@VIIID@nF{#1}} \define@key[psset]{pst-V3D}{nH}{\def\pst@VIIID@nH{#1}} \define@key[psset]{pst-V3D}{H}{\def\pst@VIIID@H{#1}} \define@key[psset]{pst-V3D}{R}{\def\pst@VIIID@R{#1}} \define@key[psset]{pst-V3D}{r}{\def\pst@VIIID@r{#1}} \psset[pst-V3D]{nF=20,nH=10,H=8,R=10,r=3}
\def\psHyperboloid{\pst@object{psHyperboloid}}
\def\psHyperboloid@i(#1,#2,#3){{ \begin@ClosedObj
\use@par
\addto@pscode{ 1 setlinejoin
\tx@parametresIIID
HyperboloidDict begin
/CX #1 def
/CY #2 def
/CZ #3 def
/dT {360 \pst@VIIID@nF\space div} bind def
/incrementHAUTEUR \pst@VIIID@H\space \pst@VIIID@nH\space div def
/H \pst@VIIID@H\space def
/R \pst@VIIID@R\space def
/r \pst@VIIID@r\space def
/a r store
/c {a H mul R dup mul r dup mul sub sqrt div }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
/condition {PSfacette 0 ge} def
/ChangeSigne {1 mul} def
MaillageHyperboloid
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
PSbaseSup 0 ge {
gsave
FaceSup clip
MaillageHyperboloid
grestore
} if
PSbaseInf 0 ge {
gsave
FaceInf clip
MaillageHyperboloid
grestore
} if
\else
PSbaseSup 0 ge {
gsave
FaceSup
H_S 1 sethsbcolor fill
FaceSup
0 setgray stroke
grestore } if
PSbaseInf 0 ge {
FaceInf
H_S 1 sethsbcolor fill
FaceInf
0 setgray stroke
} if
\fi
end
} \end@ClosedObj}}
\makeatother

—
Syracuse — Dernière modification : 24 août 2006 (0.08s - 3478399 - 7 septembre 2008)