diff options
Diffstat (limited to 'Master/texmf-dist/dvips/pst-3dplot')
-rw-r--r-- | Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro | 68 |
1 files changed, 65 insertions, 3 deletions
diff --git a/Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro b/Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro index d8cffb1e8fb..30b2d62eece 100644 --- a/Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro +++ b/Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro @@ -20,6 +20,8 @@ /tx@3DPlotDict 50 dict def tx@3DPlotDict begin % +/printDot { gsave 2 copy 2 0 360 arc fill stroke grestore } def +% /saveCoor { dzUnit mul /z exch def dyUnit mul /y exch def @@ -34,6 +36,8 @@ tx@3DPlotDict begin /y2D x leftHanded { neg } if Alpha sin mul y Alpha cos mul add neg Beta sin mul z Beta cos mul add def } def % +/Conv3D2D { /z ED /y ED /x ED ConvertTo2D x2D y2D } def +% /ConvertToCartesian { /latitude exch def /longitude exch def @@ -42,11 +46,22 @@ tx@3DPlotDict begin /x { Radius longitude cos mul latitude cos mul } def /y { Radius longitude sin mul latitude cos mul } def } def +/ConvCylToCartesian { % r phi h -> x y z + 3 1 roll % r phi h + /Phi ED + /Radius ED % h->z + Radius Phi cos mul exch % x z + Radius Phi sin mul exch % x y z +} def % /SphericalTo2D { x y z ConvertToCartesian ConvertTo2D } def % +/CylinderTo2D { % r phi h + x y z ConvCylToCartesian ConvertTo2D +} def +% /convertStackTo2D { counttomark /n exch def /n3 n 3 div cvi def @@ -69,9 +84,9 @@ tx@3DPlotDict begin /formulesTroisD{% /xObservateur x Sin1 mul neg y Cos1 mul add def /yObservateur x Cos1Sin2 mul neg y Sin1Sin2 mul sub z Cos2 mul add def - /zObservateur x neg Cos1Cos2 mul y Sin1Cos2 mul sub z Sin2 mul sub Dobs add def - /Xi DScreen xObservateur mul zObservateur div def - /Yi DScreen yObservateur mul zObservateur div def + /zObservateur x neg Cos1Cos2 mul y Sin1Cos2 mul sub z Sin2 mul sub def + /Xi xObservateur mul zObservateur Div def + /Yi yObservateur mul zObservateur Div def } def % /RotatePointXYZ{% Mxx are defined in the TeX file @@ -236,5 +251,52 @@ tx@3DPlotDict begin % /StartTheta StartTheta increment 2 div add def } for } def +% +% +/MoveTo { Conv3D2D moveto } def +/LineTo { Conv3D2D lineto } def +/IIIDEllipse { % x y z rA rB startAngle endAngle Wedge + /dAngle 1 def + /isWedge ED + /endAngle ED + /startAngle ED + /radiusB ED + /radiusA ED + startAngle cos radiusA mul startAngle sin radiusB mul 0 + isWedge { 0 0 moveto LineTo }{ MoveTo } ifelse + /Angle startAngle def + startAngle dAngle endAngle { + /Angle ED + Angle cos radiusA mul Angle sin radiusB mul 0 LineTo + } for + isWedge { 0 0 lineto } if +} def + +/IIIDCircle { % x y z r startAngle endAngle Wedge + 7 3 roll % startAngle endAngle Wedge x y z r + dup % startAngle endAngle Wedge x y z r r + 8 -3 roll + IIIDEllipse +} def + +/IIIDWedge { % x y z r startAngle endAngle + true IIIDCircle +} def + +/IIIDCylinder {% x y z r h start end wedge + /isWedge ED + /increment ED + /endAngle ED + /startAngle ED + /height ED + /radius ED + startAngle increment endAngle { + /Angle exch def + radius Angle 0 ConvCylToCartesian MoveTo + radius Angle height ConvCylToCartesian LineTo + } for + stroke +} def +% end |