summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pst-3dplot
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-03-03 00:38:36 +0000
committerKarl Berry <karl@freefriends.org>2011-03-03 00:38:36 +0000
commit3f55149c237c656f91c7f1e2facd7a1d558b5c63 (patch)
treea2f8b514e5b938e4d93a194fd905a08b8f3e0c35 /Master/texmf-dist/tex/generic/pst-3dplot
parentd1089e94735a1af2d0b65b38f181f1f53b84bafc (diff)
pst-3dplot (2mar11)
git-svn-id: svn://tug.org/texlive/trunk@21588 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pst-3dplot')
-rw-r--r--Master/texmf-dist/tex/generic/pst-3dplot/pst-3dplot.tex189
1 files changed, 132 insertions, 57 deletions
diff --git a/Master/texmf-dist/tex/generic/pst-3dplot/pst-3dplot.tex b/Master/texmf-dist/tex/generic/pst-3dplot/pst-3dplot.tex
index 7b3fb7d8c83..1eed785cf63 100644
--- a/Master/texmf-dist/tex/generic/pst-3dplot/pst-3dplot.tex
+++ b/Master/texmf-dist/tex/generic/pst-3dplot/pst-3dplot.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-3dplot.tex 293 2010-02-14 17:11:57Z herbert $
+%% $Id: pst-3dplot.tex 298 2010-03-13 08:46:53Z herbert $
%%
%% This is file `pst-3dplot.tex',
%%
@@ -27,8 +27,8 @@
\ifx\PSTMultidoLoaded\endinput\else \input multido.tex\fi
\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi
%
-\def\fileversion{1.90}
-\def\filedate{2010/02/17}
+\def\fileversion{1.94}
+\def\filedate{2011/03/01}
\message{`PST-3dplot' v\fileversion, \filedate\space (HV,DL)}
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
@@ -69,7 +69,7 @@
% 1 z y are orthogonal and angle Alpha is always 135, x-axis shortened by 1/sqrt(2), Beta has no meaning
\define@key[psset]{pst-3dplot}{SphericalCoorType}[0]{\pst@getint{#1}{\psk@ThreeDplot@SphericalCoorType}}
\psset[pst-3dplot]{drawing,drawCoor,hiddenLine=false,SphericalCoor=false,SphericalCoorType=0,
- leftHanded=false,eulerRotation=false,coorType=0,IIIDshowgrid}
+ leftHanded=false,eulerRotation=false,coorType=0}
%
% ------- the global definitions for the pspicture frame ------
%
@@ -140,14 +140,16 @@
%
% -------------- the length and node definitions -------------
%
+\iffalse
\define@key[psset]{pst-3dplot}{XO}[0]{\def\psk@ThreeDplot@XO{#1}}% the X-offset
\define@key[psset]{pst-3dplot}{YO}[0]{\def\psk@ThreeDplot@YO{#1}}% the y-offset
-\define@key[psset]{pst-3dplot}{angleStep}[1]{\def\psk@ThreeDplot@angleStep{#1}}% for circles
\define@key[psset]{pst-3dplot}{posStart}[0]{\def\psk@ThreeDplot@posStart{#1}}% where the arrows start
\define@key[psset]{pst-3dplot}{length}[2]{\def\psk@ThreeDplot@length{#1}}% the length of the before|outlines
\define@key[psset]{pst-3dplot}{arrowOffset}[0]{\def\psk@ThreeDplot@arrowOffset{#1}}%offset for \arrowLine
-\define@key[psset]{pst-3dplot}{visibleLineStyle}[solid]{\def\psk@ThreeDplot@visibleLineStyle{#1}}% offset for \arrowLine
-\define@key[psset]{pst-3dplot}{invisibleLineStyle}[dashed]{\def\psk@ThreeDplot@invisibleLineStyle{#1}}%offset for \arrowLine
+\fi
+
+\define@key[psset]{pst-3dplot}{visibleLineStyle}[solid]{\def\psk@ThreeDplot@visibleLineStyle{#1}}%
+\define@key[psset]{pst-3dplot}{invisibleLineStyle}[dashed]{\def\psk@ThreeDplot@invisibleLineStyle{#1}}
%
\define@boolkey[psset]{pst-3dplot}[Pst@]{IIIDticks}[true]{}
\define@boolkey[psset]{pst-3dplot}[Pst@]{IIIDlabels}[true]{}
@@ -224,7 +226,7 @@
xRotVec=1,yRotVec=0,zRotVec=0,RotAngle=0,
PlaneSequence={},
drawStyle=xLines,xPlotpoints=25,yPlotpoints=25,beginAngle=0,endAngle=360,
- XO=0,YO=0,angleStep=1,posStart=0,length=2,arrowOffset=0,
+% XO=0,YO=0,posStart=0,length=2,arrowOffset=0,
visibleLineStyle=solid,invisibleLineStyle=dashed,nameX=$x$,spotX=180,
nameY=$y$,spotY=0,nameZ=$z$,spotZ=90,plane=xy,pOrigin=c,
drawCoor=false,SphericalCoor=false, CylindricalCoor=false,
@@ -235,6 +237,7 @@
leftHanded=false,coorType=0,IIIDdAlpha=0,
xyzLight=1 1 2,showInside=true,SegmentColor={[cmyk]{0.2,0.6,1,0}},
increment=10,Hincrement=0.5,
+ IIIDshowgrid,
}%
\def\pst@linetype{2}% to prevent an unknown linetyp with dash
}
@@ -330,7 +333,8 @@
%
\def\psxyzlabel#1{\bgroup\footnotesize\textsf{#1}\egroup}
%
-\define@key[psset]{pst-3dplot}{IIIDOffset}{\def\psk@ThreeDplot@Offset{#1}}
+\define@key[psset]{pst-3dplot}{IIIDOffset}%[{(0,0,0)}]
+ {\def\psk@ThreeDplot@Offset{#1}}
\define@key[psset]{pst-3dplot}{zlabelFactor}[\relax]{\def\psk@zlabelFactor{#1}}
\psset[pst-3dplot]{IIIDOffset={(0,0,0)},zlabelFactor={}}% for coor axes
%
@@ -844,7 +848,9 @@
%
\def\pstThreeDSquare{\def\pst@par{}\pst@object{pstThreeDSquare}}
\def\pstThreeDSquare@i(#1,#2,#3)(#4,#5,#6)(#7,#8,#9){%
- \ifPst@drawCoor %
+ \begingroup
+ \use@keep@par
+ \ifPst@drawCoor
\pstThreeDDot[style=showCoorStyle](#1,#2,#3)%
% \pst@addThreeDVecPS(#1,#2,#3)(#4,#5,#6)\pst@tempAA\pst@tempBB\pst@tempCC
\pstThreeDDot[style=showCoorStyle](#1 #4 add, #2 #5 add, #3 #6 add)%
@@ -853,6 +859,7 @@
% \pst@addThreeDVecPS(\pst@tempAA,\pst@tempBB,\pst@tempCC)(#4,#5,#6)\pst@tempA\pst@tempB\pst@tempC
\pstThreeDDot[style=showCoorStyle](#1 #4 add #7 add, #2 #5 add #8 add, #3 #6 add #9 add)%
\fi%
+ \endgroup
\begin@ClosedObj
\addto@pscode{
\pst@3ddict
@@ -1151,6 +1158,13 @@
\addto@par{viewpoint=0 0 0}%
\begin@SpecialObj%
\addto@pscode{%
+ tx@3DPlotDict begin
+ \IIIDplot@variables
+ #1 #2 #3
+ saveCoor
+ ConvertTo2DWithoutRotating
+ x2D \pst@number\psxunit mul y2D \pst@number\psyunit mul end
+ translate
/height #4 def
/radius #5 #4 sqrt div def
/increment \psk@ThreeDplot@increment\space def
@@ -1171,8 +1185,6 @@
0 viewpoint 0 \tx@SetMatrixThreeD
viewpoint
\pst@3ddict /vZ ED /vY ED /vX ED
- \IIIDplot@variables
-% \psk@ThreeDplot@linejoin setlinejoin
/pas 0.5 def
/pas10 pas 10 div def
/cmyk {} def % we need only the values
@@ -1181,9 +1193,9 @@
%
/calculate2DPoint { % four values on stack; x2D y2D are returned
/V0 ED /Z0 ED /U20 ED /U10 ED
- U10 cos V0 mul radius mul #1 add
- U20 sin V0 mul radius mul #2 add
- Z0 #3 add %\tx@ProjThreeD
+ U10 cos V0 mul radius mul
+ U20 sin V0 mul radius mul
+ Z0
tx@3DPlotDict begin
saveCoor
ConvertTo2D
@@ -1244,21 +1256,19 @@
\end@SpecialObj%
\ignorespaces}
%
-\def\pstIIIDCylinder{\def\pst@par{}\pst@object{pstIIIDCylinder}}
+\def\pstIIIDCylinder{\pst@object{pstIIIDCylinder}}
\def\pstIIIDCylinder@i{\@ifnextchar({\pstIIIDCylinder@ii}{\pstIIIDCylinder@ii(0,0,0)}}
\def\pstIIIDCylinder@ii(#1,#2,#3)#4#5{{%
- \let\pst@parOrig\pst@par
- \begin@ClosedObj
+ \let\pst@parOrig\pst@par%
+ \begin@ClosedObj%
\addto@pscode{%
- \pst@3ddict \IIIDplot@variables end
-% \psk@ThreeDplot@linejoin setlinejoin
- /POrig {
- #1 #2 #3 \ifPst@CylindricalCoor \tx@ConvCylToCartesian \fi
- \pst@number\psunit mul 3 1 roll
- \pst@number\psunit mul 3 1 roll
- \pst@number\psunit mul 3 1 roll } def
tx@3DPlotDict begin
- POrig Conv3D2D translate
+ \IIIDplot@variables
+ #1 #2 #3 \ifPst@CylindricalCoor \tx@ConvCylToCartesian \fi
+ saveCoor
+ ConvertTo2DWithoutRotating
+ x2D \pst@number\psxunit mul y2D \pst@number\psyunit mul
+ translate % the lower center
#4 \pst@number\psunit mul dup 0 360 false
\pst@usecolor{\pslinecolor}
IIIDEllipse
@@ -1268,15 +1278,13 @@
\let\pst@par\pst@parOrig
\begin@SpecialObj
\addto@pscode{%
- \pst@3ddict \IIIDplot@variables end
-% \psk@ThreeDplot@linejoin setlinejoin
- /POrig {
- #1 #2 #3 \ifPst@CylindricalCoor \tx@ConvCylToCartesian \fi
- \pst@number\psunit mul 3 1 roll
- \pst@number\psunit mul 3 1 roll
- \pst@number\psunit mul 3 1 roll } def
- tx@3DPlotDict begin
- POrig Conv3D2D translate
+ tx@3DPlotDict begin
+ \IIIDplot@variables
+ #1 #2 #3 \ifPst@CylindricalCoor \tx@ConvCylToCartesian \fi
+ saveCoor
+ ConvertTo2DWithoutRotating
+ x2D \pst@number\psxunit mul y2D \pst@number\psyunit mul
+ translate
#4 \pst@number\psunit mul % radius
#5 \pst@number\psunit mul % height
0 360 % for the future
@@ -1289,18 +1297,16 @@
\let\pst@par\pst@parOrig
\begin@ClosedObj
\addto@pscode{%
- \pst@3ddict \IIIDplot@variables end
-% \psk@ThreeDplot@linejoin setlinejoin
- /POrig {
- #1 #2 #3 #5 add \ifPst@CylindricalCoor \tx@ConvCylToCartesian \fi
- \pst@number\psunit mul 3 1 roll
- \pst@number\psunit mul 3 1 roll
- \pst@number\psunit mul 3 1 roll } def
- tx@3DPlotDict begin
- POrig Conv3D2D translate
- #4 \pst@number\psunit mul dup 0 360 false
- \pst@usecolor{\pslinecolor}
- IIIDEllipse
+ tx@3DPlotDict begin
+ \IIIDplot@variables
+ #1 #2 #3 #5 add \ifPst@CylindricalCoor \tx@ConvCylToCartesian \fi
+ saveCoor
+ ConvertTo2DWithoutRotating
+ x2D \pst@number\psxunit mul y2D \pst@number\psyunit mul
+ translate
+ #4 \pst@number\psunit mul dup 0 360 false
+ \pst@usecolor{\pslinecolor}
+ IIIDEllipse
end
}% end of pscode
\end@ClosedObj
@@ -1491,8 +1497,8 @@
\addto@pscode{
\IIIDplot@variables
/func { #5 } def
- \ifPst@algebraic /Func ( #5 ) %tx@addDict begin
- AlgParser %end
+ \ifPst@algebraic /Func ( #5 )
+ AlgParser
cvx def \fi
/xMin #1 def
/x xMin def
@@ -1564,8 +1570,8 @@
\addto@pscode{%
\IIIDplot@variables
/func { #5 } def
- \ifPst@algebraic /Func (#5) %tx@addDict begin
- AlgParser %end
+ \ifPst@algebraic /Func (#5)
+ AlgParser
cvx def \fi
/x #1 def
/x1 #2 def
@@ -1591,8 +1597,8 @@
\addto@pscode{%
\IIIDplot@variables
/func { #5 } def
- \ifPst@algebraic /Func (#5) %tx@addDict begin
- AlgParser %end
+ \ifPst@algebraic /Func (#5)
+ AlgParser
cvx def \fi
/yMin #3 def
/y yMin def
@@ -1673,8 +1679,8 @@
\def\pslinetype{0}%
\addto@pscode{%
\IIIDplot@variables
- \ifPst@algebraic /Func (#5) %tx@addDict begin
- AlgParser %end
+ \ifPst@algebraic /Func (#5)
+ AlgParser
cvx def \fi
/tMin #1 def
/t tMin def
@@ -1700,8 +1706,8 @@
\@nameuse{beginplot@\psplotstyle}%
\addto@pscode{%
\IIIDplot@variables
- \ifPst@algebraic /Func (#5) %tx@addDict begin
- AlgParser %end
+ \ifPst@algebraic /Func (#5)
+ AlgParser
cvx def \fi
/tMin #1 def
/t tMin def
@@ -1967,6 +1973,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Utility stuff
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iffalse
% posStart=Starting point
% length= Arrow length.
\def\Arrows{\@ifnextchar[{\pst@Arrows}{\pst@Arrows[]}}
@@ -2142,6 +2149,7 @@
/YB \pst@tempb exch pop \pst@number\psyunit div def
XB XA add 2 div YB YA add 2 div){#3}
}
+\fi%--------------------------------------------------------
%
% rotateNode(A)
% (A) the node
@@ -2324,6 +2332,73 @@
\ignorespaces%
}
%
+\define@key[psset]{pst-3dplot}{stepFactor}[0.67]{\pst@checknum{#1}\psk@stepFactor }
+\psset[pst-3dplot]{stepFactor=0.67}
+%
+\newdimen\pszunit \pszunit 1cm
+%
+\def\psplotImpIIID{\pst@object{psplotImpIIID}}% 20060420
+\def\psplotImpIIID@i(#1,#2,#3)(#4,#5,#6){%
+ \@ifnextchar[{\psplotImpIIID@ii(#1,#2,#3)(#4,#5,#6)}{\psplotImpIIID@ii(#1,#2,#3)(#4,#5,#6)[]}}
+\def\psplotImpIIID@ii(#1,#2,#3)(#4,#5,#6)[#7]#8{%
+ \begin@OpenObj%
+ \addto@pscode{
+ /xMin #1 def
+ /xMax #4 def
+ /yMin #2 def
+ /yMax #5 def
+ /zMin #3 def
+ /zMax #6 def
+ \IIIDplot@variables
+ #7 % additional PS code
+ /Func \ifPst@algebraic (#8) AlgParser cvx \else { #8 } \fi def
+ /xPixel xMax xMin sub \pst@number\psxunit mul round cvi def
+ /yPixel yMax yMin sub \pst@number\psyunit mul round cvi def
+ /zPixel zMax zMin sub \pst@number\pszunit mul round cvi def
+ /dx xMax xMin sub xPixel div def
+ /dy yMax yMin sub yPixel div def
+ /dz zMax zMin sub zPixel div def
+ /setpixel {
+ dz div 3 1 roll
+ dy div 3 1 roll
+ dx div 3 1 roll
+ tx@3DPlotDict begin Conv3D2D end
+ \pst@number\pslinewidth 2 div 0 360 arc fill } bind def
+%
+ /VZ true def % suppose that F(x,y,z)>=0
+ /x xMin def /y yMin def /z zMin def
+ Func 0.0 lt { /VZ false def } if % erster Wert
+ xMin dx \psk@stepFactor\space mul xMax {
+ /x exch def
+ yMin dy \psk@stepFactor\space mul yMax {
+ /y exch def
+ zMin dz \psk@stepFactor\space mul zMax {
+ /z exch def
+ Func 0 lt
+ { VZ { x y z setpixel /VZ false def} if }
+ { VZ {}{ x y z setpixel /VZ true def } ifelse } ifelse
+ } for
+ } for
+ } for
+%
+ /x xMin def /y yMin def /z zMin def
+ Func 0.0 lt { /VZ false def } if % erster Wert
+ zMin dz \psk@stepFactor\space mul zMax {
+ /z exch def
+ yMin dy \psk@stepFactor\space mul yMax {
+ /y exch def
+ xMin dx \psk@stepFactor\space mul xMax {
+ /x exch def
+ Func 0 lt
+ { VZ { x y z setpixel /VZ false def} if }
+ { VZ {}{ x y z setpixel /VZ true def } ifelse } ifelse
+ } for
+ } for
+ } for
+ }%
+ \end@OpenObj%
+}
+%
\catcode`\@=\PstAtCode\relax
%
%% END: pst-3dplot.tex