\makeatletter \pstheader{raccord.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}{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 \define@key[psset]{pst-V3D}{a}{\def\pst@VIIID@a{#1}} % rayon raccord \psset[pst-V3D]{R=5,H=8,r=2,a=5}% \psset[pst-V3D]{nF=36,nH=20}% \def\psRaccord{\pst@object{psRaccord}} \def\psRaccord@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 RaccordDict 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 \pst@VIIID@a\space def /xI r a add def /theta 1 H R div atan def /cosT 1 1 H R div dup mul add sqrt div def /zI H R div r a add mul neg H add a cosT div add 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 MaillageRaccord end }% fin du code ps \end@ClosedObj}} \makeatother %