summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-08-20 00:09:19 +0000
committerKarl Berry <karl@freefriends.org>2007-08-20 00:09:19 +0000
commit5d15743e4114b97824c00eaa61eab488ba52b233 (patch)
tree96349eb65512f2fefd8a6d78c33462fa24834d0f
parent56c0da12a9fba35882b8b7073eb809804ebf1ee8 (diff)
pst-3dplot 1.75 (18aug07)
git-svn-id: svn://tug.org/texlive/trunk@4766 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/generic/pst-3dplot/Changes8
-rw-r--r--Master/texmf-dist/doc/generic/pst-3dplot/README8
-rw-r--r--Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.bib16
-rw-r--r--Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.pdfbin1377937 -> 2275318 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.tex352
-rw-r--r--Master/texmf-dist/doc/generic/pst-3dplot/tb72voss3d.pdfbin542949 -> 0 bytes
-rw-r--r--Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro322
-rw-r--r--Master/texmf-dist/source/generic/pst-3dplot/Makefile48
-rw-r--r--Master/texmf-dist/tex/generic/pst-3dplot/pst-3dplot.tex488
-rw-r--r--Master/texmf-dist/tex/latex/pst-3dplot/pst-3dplot.sty8
10 files changed, 856 insertions, 394 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-3dplot/Changes b/Master/texmf-dist/doc/generic/pst-3dplot/Changes
index 24ad9f5145f..8ed258675e5 100644
--- a/Master/texmf-dist/doc/generic/pst-3dplot/Changes
+++ b/Master/texmf-dist/doc/generic/pst-3dplot/Changes
@@ -1,4 +1,7 @@
pst-3dplot.pro --------
+0.23 2007-08-18 - add coorType 0,1,2 code for convertTo2D
+ - add code IIIDCylinder and cylindrical coordinates
+ - add code for \psBox and \psCylinder
0.22 2006-01-11 add code for left-Handed coor (experimental)
0.21 2005-10-10 add code for 3D sphere
0.20 2005-01-14 add rotPoint subroutine with RotSequenz option
@@ -6,9 +9,14 @@ pst-3dplot.pro --------
pst-3dplot.tex --------
+1.75 2007-08-18 - add optional argument coorType for different
+ types of coordinates
+ - add \psCylinder and \psBox with inside/outside view
+ - fix bug with the subticks option
1.74 2007-06-12 - fix bug with the optional argument of plane
- fix typo for pstParaboloid
- add macro pstIIIDCylinder
+ - add cylindrical coordinates
- revert Changes to the hidden line support
1.73 2007-02-12 better support for hidden lines of a box
1.72 2006-02-07 - allow negative direction for ellipse
diff --git a/Master/texmf-dist/doc/generic/pst-3dplot/README b/Master/texmf-dist/doc/generic/pst-3dplot/README
index 01b1ff9c915..3e48431a5eb 100644
--- a/Master/texmf-dist/doc/generic/pst-3dplot/README
+++ b/Master/texmf-dist/doc/generic/pst-3dplot/README
@@ -2,7 +2,7 @@
%%
%% Herbert Voss <voss _at_ pstricks.de> (Germany)
%%
-%% 2007-06-17
+%% 2004-12-04
%%
PSTricks offers excellent macros to insert more or less complex
@@ -26,14 +26,14 @@ pst-3dplot uses the extended version of the keyval package. So
be sure that you
- have installed xkeyval with the special pst-xkey
(CTAN: tex-archive/macros/latex/contrib/xkeyval/)
-- do not load another package behind pst-3dplot, which loads
+- do not load another package after pst-3dplot, which loads
the old keyval.sty or pst-key.tex
If you like to get the documentation file in another format run
latex pst-3dplot-doc.tex
-bibtex pst-3dplot.doc
+bibtex pst-3dplot-doc
latex pst-3dplot-doc.tex
dvips pst-3dplot-doc.dvi
@@ -44,5 +44,5 @@ latex on the documentation file.
The intermediate DVI file works only with viewers which can
interprete the embedded PostScript code.
-For another PDF output read the Introduction from
+For another PDF output read the introduction from
the documentation.
diff --git a/Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.bib b/Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.bib
index 3b785845e22..6d51864b381 100644
--- a/Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.bib
+++ b/Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.bib
@@ -99,14 +99,12 @@
gezeigt. }
}
-
@Book{companion,
- author = {Michel Goosens and Frank Mittelbach and Alexander
- Samarin},
+ author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Denis Roegel and Herbert Vo{\ss}},
title = {The {\LaTeX} {G}raphics {C}ompanion},
publisher = {{Addison-Wesley Publishing Company}},
- year = {2004},
- edition = {2.},
+ edition = second,
+ year = {2007},
address = {Reading, Mass.}
}
@@ -127,3 +125,11 @@
address = {Poing}
}
+@Book{LaTeXRef,
+ author = {Herbert Vo\ss},
+ title = {\LaTeX\ Referenz},
+ edition = {1.},
+ publisher = {DANTE -- Lehmanns},
+ year = {2007},
+ address = {Heidelberg/Hamburg}
+}
diff --git a/Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.pdf b/Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.pdf
index 9f53681952b..5affd88cc37 100644
--- a/Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.pdf
+++ b/Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.tex b/Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.tex
index b3af53cb325..ea88c16703f 100644
--- a/Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.tex
+++ b/Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.tex
@@ -450,14 +450,19 @@
\end{filecontents}
+
+\usepackage{ccfonts}
+\usepackage[euler-digits]{eulervm}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
+\usepackage[scaled=0.85]{luximono}
\usepackage{amsmath}
\usepackage{graphicx}
-\usepackage{geometry,lmodern}
+\usepackage{geometry}
\usepackage{pstricks}
\usepackage{pst-grad}
\usepackage{showexpl}
+\usepackage{tabularx}
\lstset{wide=true}
\usepackage{pst-3dplot}
\let\myFV\fileversion
@@ -478,8 +483,9 @@
\makeatother
\def\Lcs#1{{\ttfamily\textbackslash #1}}
\lfoot{\small\ttfamily\jobname.tex}
-\cfoot{}
+\cfoot{Documentation}
\rfoot{\thepage}
+\lhead{PSTricks}% package \texttt{pst-3dplot}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\let\myPart\part
@@ -518,6 +524,7 @@ It is also important that after \verb+pst-3dplot+ no package is loaded, which us
\clearpage
\section{The Parallel projection}
+%\psset{coorType=1}
Figure \ref{Abb0-1} shows a point $P(x,y,z)$ in a three dimensional coordinate system ($x,y,z$)
with a transformation into $P^*(x^*,y^*)$, the Point in the two dimensional system ($x_E,y_E$).
@@ -886,6 +893,35 @@ The following example shows a wrong placing of the labels, the planes should be
\end{pspicture}
\end{LTXexample}
+
+\subsection{Experimental features}
+All features are as long as they are not really tested called experimental. With the optional
+argument \texttt{coorType}, which is by default 0, one can change the the viewing of the axes
+and all other three dimensional objects.
+
+With \texttt{coorType=1} the y--z-axes are orthogonal and the angle between x- and y-axis
+is \texttt{Alpha}. The angle \texttt{Beta} is not valid.
+
+\begin{LTXexample}[width=9.75cm]
+\psset{coorType=1,Alpha=135}
+\begin{pspicture}(-2,-3)(3,3)
+\pstThreeDCoor[IIIDticks,zMax=3]%
+\end{pspicture}
+\end{LTXexample}
+
+With \texttt{coorType=2} the y--z-axes are orthogonal and the angle between x- and y-axis
+is always 135 degrees and the x-axis is shortened by a factor of $1/\sqrt{2}$.
+The angle \texttt{Alpha} is only valid for placing the ticks, if any. The angle \texttt{Beta} is not valid.
+
+\begin{LTXexample}[width=9.75cm]
+\psset{coorType=2,Alpha=90,
+ IIIDxTicksPlane=yz}
+\begin{pspicture}(-2,-2)(3,3)
+\pstThreeDCoor[IIIDticks,zMax=3]%
+\end{pspicture}
+\end{LTXexample}
+
+\clearpage
\section{Rotation}
The coordinate system can be rotated independent from the given Alpha and Beta values. This makes it possible to place
@@ -900,6 +936,7 @@ additional one for the rotating sequence, which can be any combination of the th
\end{pspicture}
\end{LTXexample}
+
\begin{LTXexample}[pos=t]
\psset{unit=2,linewidth=1.5pt,drawCoor=false}
\begin{pspicture}(-2,-1.5)(2,2.5)%
@@ -921,6 +958,7 @@ additional one for the rotating sequence, which can be any combination of the th
\end{pspicture}%
\end{LTXexample}
+
\begin{LTXexample}[pos=t]
\begin{pspicture}(-2,-1.5)(2,2.5)%
\pstThreeDCoor[xMin=0,xMax=2,yMin=0,yMax=2,zMin=0,zMax=2]%
@@ -934,6 +972,7 @@ additional one for the rotating sequence, which can be any combination of the th
+\clearpage
\psset{unit=1cm,gridlabels=7pt}
@@ -943,27 +982,52 @@ additional one for the rotating sequence, which can be any combination of the th
\end{verbatim}
There are three additional options
-\begin{description}
-\item[planeGrid] can be one of the following values: \verb+xy, xz, yz+. Default is \verb+xy+.
-\item[subticks] Number of ticks. Default is \verb+10+.\footnote{This options is also defined
-in the package \texttt{pstricks-add}, so it is nessecary to to set this option
-locally or with the family option of \texttt{pst-xkey}}
-\item[planeGridOffset] a length for the shift of the grid. Default is \verb+0+.
-\end{description}
+\noindent
+\begin{tabularx}{\linewidth}{@{}>{\bfseries\ttfamily}lX@{}}
+planeGrid & can be one of the following values: \verb+xy, xz, yz+. Default is \verb+xy+.\\
+subticks & Number of ticks. Default is \verb+10+.\footnotemark \\
+planeGridOffset & a length for the shift of the grid. Default is \verb+0+.
+\end{tabularx}
+
+\footnotetext{This options is also defined
+in the package \texttt{pstricks-add}, so it is nessecary to to set this option
+locally or with the family option of \texttt{pst-xkey}, eg \CMD{psset[pst-3dplot]\{subticks=...\}}}
This macro is a special one for the coordinate system to show the units, but can
be used in any way. \verb+subticks+ defines the number of ticklines for both axes and
\verb+xsubticks+ and \verb+ysubticks+ for each one.
-\begin{LTXexample}[pos=t]
-\begin{pspicture}(-5,-5)(5,6.5)
- \pstThreeDCoor[xMin=0,yMin=0,zMin=0,xMax=7,yMax=7,zMax=7,linewidth=2pt]
+\iffalse
+\newpsstyle{xyPlane}{fillstyle=solid,fillcolor=black!20}
+\newpsstyle{xzPlane}{fillstyle=solid,fillcolor=black!35,planeGrid=xz}
+\newpsstyle{yzPlane}{fillstyle=solid,fillcolor=black!50,planeGrid=yz}
+\fi
+
+\noindent
+\begin{minipage}{0.49\linewidth}
+\begin{LTXexample}[pos=t,wide=false]
+\begin{pspicture}(-4,-3.5)(5,4)
+ \pstThreeDCoor[xMin=0,yMin=0,zMin=0,linewidth=2pt]
\psset{linewidth=0.1pt,linecolor=lightgray}
- \pstThreeDPlaneGrid(0,0)(7,7)
- \pstThreeDPlaneGrid[planeGrid=xz](0,0)(7,7)
- \pstThreeDPlaneGrid[planeGrid=yz](0,0)(7,7)
+ \pstThreeDPlaneGrid(0,0)(4,4)
+ \pstThreeDPlaneGrid[planeGrid=xz](0,0)(4,4)
+ \pstThreeDPlaneGrid[planeGrid=yz](0,0)(4,4)
+\end{pspicture}
+\end{LTXexample}
+\end{minipage}\hfill
+\begin{minipage}{0.49\linewidth}
+\begin{LTXexample}[pos=t,wide=false]
+\begin{pspicture}(-3,-3.5)(5,4)
+ \psset{coorType=2}% set it globally!
+ \pstThreeDCoor[xMin=0,yMin=0,zMin=0,linewidth=2pt]
+ \psset{linewidth=0.1pt,linecolor=lightgray}
+ \pstThreeDPlaneGrid(0,0)(4,4)
+ \pstThreeDPlaneGrid[planeGrid=xz](0,0)(4,4)
+ \pstThreeDPlaneGrid[planeGrid=yz](0,0)(4,4)
\end{pspicture}
\end{LTXexample}
+\end{minipage}
+
\begin{LTXexample}[pos=t]
\begin{pspicture}(-1,-2)(10,10)
@@ -973,20 +1037,15 @@ be used in any way. \verb+subticks+ defines the number of ticklines for both axe
\pstThreeDPlaneGrid(0,0)(7,7)
\pstThreeDPlaneGrid[planeGrid=xz,planeGridOffset=7](0,0)(7,7)
\pstThreeDPlaneGrid[planeGrid=yz](0,0)(7,7)
- \pscustom[linewidth=0.1pt,fillstyle=gradient,gradbegin=gray,gradmidpoint=0.5,plotstyle=curve]{
+ \pscustom[linewidth=0.1pt,fillstyle=gradient,gradbegin=gray,gradmidpoint=0.5,plotstyle=curve]{%
\psset{xPlotpoints=200,yPlotpoints=1}
- \psplotThreeD(0,7)(0,0){%
- x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }
+ \psplotThreeD(0,7)(0,0){ x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }
\psset{xPlotpoints=1,yPlotpoints=200,drawStyle=yLines}
- \psplotThreeD(7,7)(0,7){%
- x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }
+ \psplotThreeD(7,7)(0,7){ x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }
\psset{xPlotpoints=200,yPlotpoints=1,drawStyle=xLines}
- \psplotThreeD(7,0)(7,7){%
- x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }
+ \psplotThreeD(7,0)(7,7){ x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }
\psset{xPlotpoints=1,yPlotpoints=200,drawStyle=yLines}
- \psplotThreeD(0,0)(7,0){%
- x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }
- }
+ \psplotThreeD(0,0)(7,0){ x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }}
\pstThreeDPlaneGrid[planeGrid=yz,planeGridOffset=7](0,0)(7,7)
\end{pspicture}
\end{LTXexample}
@@ -1000,20 +1059,16 @@ be used in any way. \verb+subticks+ defines the number of ticklines for both axe
\pstThreeDPlaneGrid(0,0)(7,7)
\pstThreeDPlaneGrid[planeGrid=xz](0,0)(7,7)
\pstThreeDPlaneGrid[planeGrid=yz](0,0)(7,7)
- \pscustom[linewidth=0.1pt,fillstyle=gradient,gradbegin=gray,gradend=white,gradmidpoint=0.5,plotstyle=curve]{
+ \pscustom[linewidth=0.1pt,fillstyle=gradient,gradbegin=gray,gradend=white,gradmidpoint=0.5,
+ plotstyle=curve]{%
\psset{xPlotpoints=200,yPlotpoints=1}
- \psplotThreeD(0,7)(0,0){%
- x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }
+ \psplotThreeD(0,7)(0,0){ x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }
\psset{xPlotpoints=1,yPlotpoints=200,drawStyle=yLines}
- \psplotThreeD(7,7)(0,7){%
- x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }
+ \psplotThreeD(7,7)(0,7){ x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }
\psset{xPlotpoints=200,yPlotpoints=1,drawStyle=xLines}
- \psplotThreeD(7,0)(7,7){%
- x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }
+ \psplotThreeD(7,0)(7,7){ x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }
\psset{xPlotpoints=1,yPlotpoints=200,drawStyle=yLines}
- \psplotThreeD(0,0)(7,0){%
- x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }
- }
+ \psplotThreeD(0,0)(7,0){ x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div }}
\pstThreeDPlaneGrid[planeGrid=xz,planeGridOffset=7](0,0)(7,7)
\pstThreeDPlaneGrid[planeGrid=yz,planeGridOffset=7](0,0)(7,7)
\end{pspicture}
@@ -1021,9 +1076,7 @@ be used in any way. \verb+subticks+ defines the number of ticklines for both axe
\medskip
The equation for the examples is
-\[
-f(x,y)=\frac{x^2+2y^2-6x-4y+3}{10}
-\]
+\[ f(x,y)=\frac{x^2+2y^2-6x-4y+3}{10} \]
\section{Put}
There exists a special option for the put macros:
@@ -1084,7 +1137,6 @@ The syntax is similiar to the \verb|\rput| macro:
\begin{LTXexample}[width=3.25cm]
\begin{pspicture}(-2,-1.25)(1,2.25)
- \psgrid
\psset{Alpha=-60,Beta=30}
\pstThreeDCoor[linecolor=blue,%
xMin=-1,xMax=2,yMin=-1,yMax=2,zMin=-1,zMax=2]
@@ -1121,7 +1173,6 @@ The object can be of any type, in most cases it will be some kind of text. The r
\begin{LTXexample}[width=7.25cm]
\begin{pspicture}(-4,-4)(3,4)
- \psgrid
\psset{Alpha=30}
\pstThreeDCoor[xMin=-4,yMin=-4,zMin=-4]
\pstPlanePut[plane=xy](0,0,-3){\fbox{\Huge\red xy plane}}
@@ -1132,7 +1183,6 @@ The object can be of any type, in most cases it will be some kind of text. The r
\begin{LTXexample}[width=7.25cm]
\begin{pspicture}(-5,-3)(2,3)
- \psgrid
\pstThreeDCoor[xMin=2,yMin=-4,zMin=-3,zMax=2]
\pstPlanePut[plane=xz](0,-3,0){\fbox{\Huge\green\textbf{xz plane}}}
\pstPlanePut[plane=xz](0,0,0){\fbox{\Huge\green\textbf{xz plane}}}
@@ -1143,7 +1193,6 @@ The object can be of any type, in most cases it will be some kind of text. The r
\begin{LTXexample}[width=7.25cm]
\begin{pspicture}(-2,-4)(6,2)
- \psgrid
\pstThreeDCoor[xMin=-4,yMin=-4,zMin=-4,xMax=2,zMax=2]
\pstPlanePut[plane=yz](-3,0,0){\fbox{\Huge\blue\textbf{yz plane}}}
\pstPlanePut[plane=yz](0,0,0){\fbox{\Huge\blue\textbf{yz plane}}}
@@ -1190,7 +1239,7 @@ If you want to keep the labels readable for every view, i.\,e.\ for every value
\medskip
\begin{LTXexample}[width=6cm]
-\begin{pspicture}(-3,-2)(3,4)\psgrid
+\begin{pspicture}(-3,-2)(3,4)
\psset{origin=lb}
\pstThreeDCoor[xMax=3.2,yMax=3.2,zMax=4]
\pstThreeDDot[drawCoor=true,linecolor=red](1,-1,2)
@@ -1215,7 +1264,7 @@ letters is parallel to the $y$ axis. It's done by setting
\medskip
\begin{LTXexample}[width=6cm]
-\begin{pspicture}(-2,-2)(4,4)\psgrid
+\begin{pspicture}(-2,-2)(4,4)
\psset{origin=lb}
\psset{Alpha=69.3,Beta=19.43}
\pstThreeDCoor[xMax=4,yMax=4,zMax=4]
@@ -1255,7 +1304,7 @@ with the option \verb|dotstyle=none|.\index{dotstyle} In this case the macro dra
when the \verb|drawCoor| option is set to true.
\begin{LTXexample}[width=4.25cm]
-\begin{pspicture}(-2,-2)(2,2)\psgrid
+\begin{pspicture}(-2,-2)(2,2)
\pstThreeDCoor[xMin=-2,xMax=2,yMin=-2,yMax=2,zMin=-2,zMax=2]
\psset{dotstyle=*,dotscale=2,linecolor=red,drawCoor=true}
\pstThreeDDot(-1,1,1)
@@ -1267,7 +1316,7 @@ In the following figure the coordinates of the dots are $(a,a,a)$ where a is $-2
\begin{LTXexample}[width=5.25cm]
-\begin{pspicture}(-3,-3.25)(2,3.25)\psgrid
+\begin{pspicture}(-3,-3.25)(2,3.25)
\psset{Alpha=30,Beta=60,dotstyle=square*,dotsize=3pt,%
linecolor=blue,drawCoor=true}
\pstThreeDCoor[xMin=-3,xMax=3,yMin=-3,yMax=3,zMin=-3,zMax=3]
@@ -1290,7 +1339,7 @@ There is no special \verb+polygon+ macro, because you can get nearlx the same wi
\verb+\pstThreeDLine+.
\begin{LTXexample}[width=4.25cm]
-\begin{pspicture}(-2,-2.25)(2,2.25)\psgrid
+\begin{pspicture}(-2,-2.25)(2,2.25)
\pstThreeDCoor[xMin=-2,xMax=2,yMin=-2,yMax=2,zMin=-2,zMax=2]
\psset{dotstyle=*,linecolor=red,drawCoor=true}
\pstThreeDDot(-1,1,0.5)
@@ -1304,7 +1353,7 @@ There is no special \verb+polygon+ macro, because you can get nearlx the same wi
\begin{LTXexample}[width=4.25cm]
-\begin{pspicture}(-2,-2.25)(2,2.25)\psgrid
+\begin{pspicture}(-2,-2.25)(2,2.25)
\pstThreeDCoor[xMin=-2,xMax=2,yMin=-2,yMax=2,zMin=-2,zMax=2]
\psset{dotstyle=*,linecolor=red,drawCoor=true}
\pstThreeDDot(-1,1,1)
@@ -1315,7 +1364,7 @@ There is no special \verb+polygon+ macro, because you can get nearlx the same wi
\begin{LTXexample}[width=4.25cm]
-\begin{pspicture}(-2,-2.25)(2,2.25)\psgrid
+\begin{pspicture}(-2,-2.25)(2,2.25)
\psset{Alpha=30,Beta=60,dotstyle=pentagon*,dotsize=5pt,%
linecolor=red,drawCoor=true}
\pstThreeDCoor[xMin=-2,xMax=2,yMin=-2,yMax=2,zMin=-2,zMax=2]
@@ -1326,7 +1375,7 @@ There is no special \verb+polygon+ macro, because you can get nearlx the same wi
\end{LTXexample}
\begin{LTXexample}[width=4.25cm]
-\begin{pspicture}(-2,-2.25)(2,2.25)\psgrid
+\begin{pspicture}(-2,-2.25)(2,2.25)
\psset{Alpha=30,Beta=-60}
\pstThreeDCoor[xMin=-2,xMax=2,yMin=-2,yMax=2,zMin=-2,zMax=2]
\pstThreeDDot[dotstyle=square,linecolor=blue,drawCoor=true](-1,1,1)
@@ -1337,7 +1386,7 @@ There is no special \verb+polygon+ macro, because you can get nearlx the same wi
\begin{LTXexample}[width=4.25cm]
-\begin{pspicture}(-2,-2.25)(2,2.25)\psgrid
+\begin{pspicture}(-2,-2.25)(2,2.25)
\psset{Alpha=30,Beta=-60}
\pstThreeDCoor[xMin=-2,xMax=2,yMin=-2,yMax=2,zMin=-2,zMax=2]
\pstThreeDDot[dotstyle=square,linecolor=blue,drawCoor=true](-1,1,1)
@@ -1376,7 +1425,7 @@ A triangle is given with its three points:
When the option \verb|fillstyle| is set to another value than \verb|none| the triangle is filled with the active color or with the one which is set with the option \verb|fillcolor|.
\begin{LTXexample}[width=6.25cm]
-\begin{pspicture}(-3,-4.25)(3,3.25)\psgrid
+\begin{pspicture}(-3,-4.25)(3,3.25)
\pstThreeDCoor[xMin=-4,xMax=4,yMin=-3,yMax=5,zMin=-4,zMax=3]
\pstThreeDTriangle[fillcolor=yellow,fillstyle=solid,%
linecolor=blue,linewidth=1.5pt](5,1,2)(3,4,-1)(-1,-2,2)
@@ -1390,15 +1439,15 @@ Especially for triangles the option \verb|linejoin| is important. The default va
\begin{figure}[htb]
\centering
\psset{linewidth=0.2}
-\begin{pspicture}(3,2.25)\psgrid
+\begin{pspicture}(3,2.25)
\psline(0,0)(1,2)(2,0)(3,2)
\end{pspicture}%
\hspace{0.4cm}%
-\begin{pspicture}(4,2.25)\psgrid
+\begin{pspicture}(4,2.25)
\pscustom{\code{1 setlinejoin}\psline(0,0)(1,2)(2,0)(3,2)(4,0)}
\end{pspicture}%
\hspace{0.4cm}%
-\begin{pspicture}(3,2.25)\psgrid
+\begin{pspicture}(3,2.25)
\pscustom{\code{2 setlinejoin}\psline(0,0)(1,2)(2,0)(3,2)}
\end{pspicture}
\caption{The meaning of the option \texttt{linejoin=0|1|2} for drawing lines}
@@ -1412,7 +1461,7 @@ The syntax for a 3D square is:
\end{verbatim}
\begin{LTXexample}[width=5cm]
-\begin{pspicture}(-1,-1)(4,3)\psgrid
+\begin{pspicture}(-1,-1)(4,3)
\pstThreeDCoor[xMin=-3,xMax=1,yMin=-1,yMax=2,zMin=-1,zMax=3]
\psset{arrows=->,arrowsize=0.2,linecolor=blue,linewidth=1.5pt}
\pstThreeDLine[linecolor=green](0,0,0)(-2,2,3)\uput[45](1.5,1){$\vec{o}$}
@@ -1426,7 +1475,7 @@ Squares are nothing else than a polygon with the starting point $P_o$ given with
\begin{LTXexample}[width=7.25cm]
-\begin{pspicture}(-3,-2)(4,3)\psgrid
+\begin{pspicture}(-3,-2)(4,3)
\pstThreeDCoor[xMin=-3,xMax=3,yMin=-1,yMax=4,zMin=-1,zMax=3]
{\psset{fillcolor=blue,fillstyle=solid,drawCoor=true,dotstyle=*}
\pstThreeDSquare(-2,2,3)(4,0,0)(0,1,0)}
@@ -1507,6 +1556,79 @@ These are the origin vector $\vec{o}$ and three direction vectors $\vec{u}$, $\v
\end{pspicture}
\end{LTXexample}
+
+\begin{verbatim}
+\psBox[<options>](<vector o>){width}{depth}{height}
+\end{verbatim}
+
+The origin vector $\vec{o}$ determines the left corner of the box.
+
+
+\begin{LTXexample}[width=6.25cm]
+\begin{pspicture}(-3,-2)(3,5)
+\psset{Alpha=2,Beta=10}
+\pstThreeDCoor[zMax=5,yMax=7]
+ \psBox(0,0,0){2}{4}{3}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=6.25cm]
+\begin{pspicture}(-3,-3)(3,3)
+\psset{Beta=50}
+\pstThreeDCoor[xMax=3,zMax=6,yMax=6]
+ \psBox[showInside=false](0,0,0){2}{5}{3}
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=6.25cm]
+\begin{pspicture}(-3,-4)(3,2)
+\psset{Beta=40}
+\pstThreeDCoor[zMax=3]
+ \psBox[RotY=20,showInside=false](0,0,0){2}{5}{3}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\begin{LTXexample}[width=6.25cm]
+\psset{Beta=10,xyzLight=-7 3 4}
+\begin{pspicture}(-3,-2)(3,4)
+\pstThreeDCoor[zMax=5]
+ \psBox(0,0,0){2}{5}{3}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=6.25cm]
+\psset{Beta=10,xyzLight=-7 3 4}
+\begin{pspicture}(-3,-2)(3,4)
+\psset{Alpha=110}
+\pstThreeDCoor[zMax=5]
+ \psBox(0,0,0){2}{5}{3}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=6.25cm]
+\psset{Beta=10,xyzLight=-7 3 4}
+\begin{pspicture}(-3,-2)(3,4)
+\psset{Alpha=200}
+\pstThreeDCoor[zMax=5]
+ \psBox(0,0,0){2}{5}{3}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=6.25cm]
+\psset{Beta=10,xyzLight=-7 3 4}
+\begin{pspicture}(-3,-2)(3,4)
+\psset{Alpha=290}
+\pstThreeDCoor[zMax=5]
+ \psBox(0,0,0){2}{5}{3}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
\section{Ellipses and circles}
The equation for a two dimensional ellipse (figure \ref{fig:ellipse})is:
@@ -1612,7 +1734,7 @@ shortest way into the second one $\vec{u}$, then you'll get the positive rotati
\begin{LTXexample}[width=4.25cm]
-\begin{pspicture}(-2,-2.25)(2,2.25)\psgrid
+\begin{pspicture}(-2,-2.25)(2,2.25)
\pstThreeDCoor[xMax=2,yMax=2,zMax=2]
\pstThreeDDot[linecolor=red,drawCoor=true](1,0.5,0.5)
\psset{linecolor=blue, linewidth=1.5pt}
@@ -1636,7 +1758,7 @@ The macro \verb|\pstThreeDCircle| is nothing else than a synonym for \verb|\pstT
In the following example the circle is drawn with only $20$ plotpoints and the option \verb|showpoints=true|.
\begin{LTXexample}[width=4.25cm]
-\begin{pspicture}(-2,-1.25)(2,2.25)\psgrid
+\begin{pspicture}(-2,-1.25)(2,2.25)
\pstThreeDCoor[xMax=2,yMax=2,zMax=2,linecolor=black]
\psset{linecolor=red,linewidth=2pt,plotpoints=20,showpoints=true}
\pstThreeDCircle(1.6,+0.6,1.7)(0.8,0.4,0.8)(0.8,-0.8,-0.4)
@@ -1810,6 +1932,55 @@ missing, then \verb+(0,0,0)+ are taken into account.
}
\end{LTXexample}
+
+
+% ---------------------------------------------------------------------------------------
+\section{\CMD{psCylinder}}
+% ---------------------------------------------------------------------------------------
+The syntax is
+
+\begin{verbatim}
+\psCylinder[Parameter](x,y,z){radius}{height}
+\end{verbatim}
+
+\verb+(x,y,z)+ defines the center of the lower part of the cylinder. If it is
+missing, then \verb+(0,0,0)+ are taken into account.
+
+\begin{LTXexample}[width=7cm]
+\begin{pspicture}(-3,-2)(3,7)
+\psset{Beta=10}
+\pstThreeDCoor[zMax=7]
+ \psCylinder[increment=5]{2}{5}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=7cm]
+\begin{pspicture}(-3,-2)(3,6)
+\psset{Beta=60}
+\pstThreeDCoor[zMax=9]
+ \psCylinder[RotX=10,increment=5]{3}{5}
+ \pstThreeDLine[linecolor=red](0,0,0)(0,0,8.5)
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=7cm]
+\begin{pspicture}(-3,-2)(3,6)
+\psset{Beta=60}
+\pstThreeDCoor[zMax=9]
+ \psCylinder[RotX=10,RotY=45,showInside=false]{2}{5}
+ \pstThreeDLine[linecolor=red](0,0,0)(0,0,8.5)
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=7cm]
+\begin{pspicture}(-3,-2)(3,6)
+\psset{Beta=60}
+\pstThreeDCoor[zMax=9]
+ \psCylinder[RotY=-45](0,1,0){2}{5}
+\end{pspicture}
+\end{LTXexample}
+
+
\clearpage
% ---------------------------------------------------------------------------------------
@@ -1848,22 +2019,40 @@ otherwise \verb|xcolor| cannot read the values. A white color is given by \verb|
\begin{LTXexample}[width=4cm]
\begin{pspicture}(-2,-1)(2,5)
\pstThreeDCoor[xMax=2,yMax=2,zMin=0,zMax=6,IIIDticks]%
-\pstParaboloid{5}{1}% Höhe 5 und Radius 1
+\pstParaboloid{5}{1}% Hoehe 5 und Radius 1
\end{pspicture}
\end{LTXexample}
-\begin{LTXexample}[pos=t]
-\begin{pspicture}(-.5\linewidth,-1)(.5\linewidth,7.5)
-\pstParaboloid[showInside=false,SegmentColor={[cmyk]{0.8,0.1,.11,0}}]{4}{5}%
-\pstThreeDCoor[xMax=3,yMax=3,zMax=7.5,IIIDticks]
+\begin{LTXexample}[width=.65\linewidth,wide]
+\begin{pspicture}(-.25\linewidth,-1)%
+ (.25\linewidth,7.5)
+\pstParaboloid[showInside=false,
+ SegmentColor={[cmyk]{0.8,0.1,.11,0}}]{4}{5}%
+\pstThreeDCoor[xMax=3,yMax=3,
+ zMax=7.5,IIIDticks]
\end{pspicture}
\end{LTXexample}
+\begin{LTXexample}[width=9cm,wide]
+\begin{pspicture}(0,-3)(7,5)
+\pstThreeDCoor[xMax=2,yMax=13,zMin=0,zMax=6,IIIDticks]%
+\multido{\rA=2.0+2.5,
+ \rB=0.15+0.20}{5}{%
+ \pstParaboloid[%
+ SegmentColor={[cmyk]%
+ {\rB,0.1,0.11,0.1}}]%
+ (0,\rA,0){5}{1}}% height 5 and radius 1
+\pstThreeDLine[linestyle=dashed]{->}(0,0,5)(0,13,5)
+\end{pspicture}
+\end{LTXexample}
+
+
+\clearpage
\section{Spheres}\label{sec:spheres}
\begin{LTXexample}[width=6.25cm]
-\begin{pspicture}(-4,-2.25)(2,4.25)\psgrid
+\begin{pspicture}(-4,-2.25)(2,4.25)
\pstThreeDCoor[xMin=-3,yMax=2]
\pstThreeDSphere(1,-1,2){2}
\pstThreeDDot[dotstyle=x,linecolor=red,drawCoor=true](1,-1,2)
@@ -1891,7 +2080,7 @@ otherwise \verb|xcolor| cannot read the values. A white color is given by \verb|
\begin{LTXexample}[width=6.25cm]
-\begin{pspicture}(-4,-2.25)(2,4.25)\psgrid
+\begin{pspicture}(-4,-2.25)(2,4.25)
\pstThreeDCoor[xMin=-3,yMax=2]
\pstThreeDSphere[SegmentColor={[cmyk]{0,0,0,0}}](1,-1,2){2}
\pstThreeDDot[dotstyle=x,linecolor=red,drawCoor=true](1,-1,2)
@@ -1969,7 +2158,7 @@ In fact of the inner loop it is only possible to get a closed curve in the defin
Drawing three dimensional functions with curves which are transparent makes it difficult to see if a point is before or behind another one. \verb|\psplotThreeD| has an option \verb|hiddenLine| for a primitive hidden line mode, which only works when the y-intervall is defined in a way that $y_2>y_1$. Then every new curve is plotted over the forgoing one and filled with the color white. Figure \ref{fig:3dfunc-hidden} is the same as figure \ref{fig:3dfunc}, only with the option \verb|hiddenLine=true|.
\begin{lstlisting}
-\begin{pspicture}(-6,-4)(6,5)\psgrid
+\begin{pspicture}(-6,-4)(6,5)
\psset{Beta=15}
\psplotThreeD[plotstyle=line,drawStyle=xLines,% is the default anyway
yPlotpoints=50,xPlotpoints=50,linewidth=1pt](-4,4)(-4,4){%
@@ -1983,7 +2172,7 @@ Drawing three dimensional functions with curves which are transparent makes it d
\begin{figure*}
\centering
-\begin{pspicture}(-6,-4)(6,5)\psgrid
+\begin{pspicture}(-6,-4)(6,5)
\psset{Beta=15}
\psplotThreeD[%
plotstyle=curve,%
@@ -2001,7 +2190,7 @@ Drawing three dimensional functions with curves which are transparent makes it d
\begin{figure*}
\centering
\begin{pspicture}(-6,-4)(6,5)
- \psgrid
+
\psset{Alpha=45,Beta=15}
\psplotThreeD[%
plotstyle=curve,%
@@ -2020,7 +2209,7 @@ Drawing three dimensional functions with curves which are transparent makes it d
\begin{figure*}
\centering
\begin{pspicture}(-6,-4)(6,5)
- \psgrid
+
\psset{Alpha=45,Beta=15}
\psplotThreeD[%
plotstyle=line,%
@@ -2038,7 +2227,7 @@ Drawing three dimensional functions with curves which are transparent makes it d
\begin{figure*}
\centering
\begin{pspicture}(-6,-4)(6,5)
- \psgrid
+
\psset{Alpha=45,Beta=15}
\psplotThreeD[%
plotstyle=curve,%
@@ -2061,7 +2250,7 @@ Drawing three dimensional functions with curves which are transparent makes it d
\begin{figure*}
\centering
\begin{pspicture}(-6,-4)(6,5)
- \psgrid
+
\psset{Alpha=45,Beta=15}
\psplotThreeD[%
plotstyle=line,%
@@ -2079,7 +2268,7 @@ Drawing three dimensional functions with curves which are transparent makes it d
\begin{figure*}[htbp]
\centering
\begin{pspicture}(-6,-4)(6,5)
- \psgrid
+
\psset{Alpha=45,Beta=15}
\psplotThreeD[%
plotstyle=curve,%
@@ -2099,7 +2288,7 @@ Drawing three dimensional functions with curves which are transparent makes it d
\begin{figure*}[htbp]
\centering
\begin{pspicture}(-6,-4)(6,5)
- \psgrid
+
\psset{Alpha=45,Beta=15}
\psplotThreeD[%
plotstyle=curve,%
@@ -2150,7 +2339,7 @@ In the example the $t$ value is divided by $600$ for the \verb|z| coordinate, be
which is the same as \verb|(0,0)| for the parameter \verb|u|.
\begin{LTXexample}[width=6.75cm]
-\begin{pspicture}(-3.25,-2.25)(3.25,5.25)\psgrid
+\begin{pspicture}(-3.25,-2.25)(3.25,5.25)
\parametricplotThreeD[xPlotpoints=200,linecolor=blue,%
linewidth=1.5pt,plotstyle=curve](0,2160){%
2.5 t cos mul 2.5 t sin mul t 600 div}
@@ -2180,7 +2369,7 @@ z = \sin u
and at last both together is also not a problem when having these parametric functions together in one \verb|pspicture| environment (see figure \ref{fig:paraSpheres}).
\begin{lstlisting}
-\begin{pspicture}(-1,-1)(1,1)\psgrid
+\begin{pspicture}(-1,-1)(1,1)
\parametricplotThreeD[plotstyle=curve,yPlotpoints=40](0,360)(0,360){%
t cos u sin mul t cos u cos mul t sin
}
@@ -2194,7 +2383,7 @@ and at last both together is also not a problem when having these parametric fun
\begin{figure}[htbp]
{\psset{xunit=1.75cm,yunit=1.75cm}
\begin{pspicture}(-1,-1)(1,1)
-\psgrid
+
\setIIIDplotDefaults
%\pstThreeDCoor[xMin=-1,xMax=1,yMin=-1,yMax=1,zMin=-1,zMax=1]
\parametricplotThreeD[plotstyle=curve](0,360)(0,360){%
@@ -2204,7 +2393,7 @@ and at last both together is also not a problem when having these parametric fun
}
\end{pspicture}\hfill%
\begin{pspicture}(-1,-1)(1,1)
-\psgrid
+
%\pstThreeDCoor[xMin=-1,xMax=1,yMin=-1,yMax=1,zMin=-1,zMax=1]
\parametricplotThreeD[plotstyle=curve](0,360)(0,360){%
u cos t sin mul
@@ -2214,7 +2403,7 @@ and at last both together is also not a problem when having these parametric fun
\end{pspicture}}\hfill
{\psset{xunit=2.5cm,yunit=2.5cm}
\begin{pspicture}(-1,-1)(1,1)
-\psgrid
+
\pstThreeDCoor[xMin=-1,xMax=1,yMin=-1,yMax=1,zMin=-1,zMax=1]
\parametricplotThreeD[plotstyle=curve](0,360)(0,360){%
t cos u sin mul
@@ -2504,9 +2693,12 @@ error. In this case save prevent expanding with e.g.: \verb+\psset{nameX=$\noexp
\section{Credits}
Bruce Burlton | Christophe Jorssen | Chris Kuklewicz | Thorsten Suhling
+\bgroup
\nocite{*}
-
+\raggedright
\bibliographystyle{plain}
\bibliography{pst-3dplot-doc}
+\egroup
+
\end{document}
diff --git a/Master/texmf-dist/doc/generic/pst-3dplot/tb72voss3d.pdf b/Master/texmf-dist/doc/generic/pst-3dplot/tb72voss3d.pdf
deleted file mode 100644
index ef3bc1f69bb..00000000000
--- a/Master/texmf-dist/doc/generic/pst-3dplot/tb72voss3d.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro b/Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro
index 30b2d62eece..12f52ad1443 100644
--- a/Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro
+++ b/Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro
@@ -15,7 +15,7 @@
%% `pst-3dplot' is a PSTricks package to draw 3d curves and graphical objects
%%
%%
-%% version 0.23 / 2006-01-18 Herbert Voss <voss _at_ PSTricks.de>
+%% version 0.23 / 2007-08-18 Herbert Voss <voss _at_ PSTricks.de>
%
/tx@3DPlotDict 50 dict def
tx@3DPlotDict begin
@@ -30,10 +30,20 @@ tx@3DPlotDict begin
%
/ConvertTo2D {
RotatePoint
-% /x2D y x Alpha sin mul sub def % |/_ co system
-% /y2D z x Alpha cos mul sub def
- /x2D x leftHanded not { neg } if Alpha cos mul y Alpha sin mul add def
- /y2D x leftHanded { neg } if Alpha sin mul y Alpha cos mul add neg Beta sin mul z Beta cos mul add def
+ 1 { % dummy loop, will run only 1 time
+ coorType 0 le { % the default |
+ /x2D x leftHanded not { neg } if Alpha cos mul y Alpha sin mul add def % /\ co system
+ /y2D x leftHanded { neg } if Alpha sin mul y Alpha cos mul add neg Beta sin mul z Beta cos mul add def
+ exit } if
+ coorType 1 le {
+ /x2D y x Alpha 90 sub sin mul sub def % |/_ co system, no shortened x axis
+ /y2D z x Alpha 90 sub cos mul sub def
+ exit } if
+ coorType 2 le { % coorType |/_ with a 1/sqrt(2) shortend x-axis and 135 degrees
+ /x2D y x 0.5 mul sub def
+ /y2D z x 0.5 mul sub def
+ exit } if
+ } repeat
} def
%
/Conv3D2D { /z ED /y ED /x ED ConvertTo2D x2D y2D } def
@@ -46,10 +56,11 @@ 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
+ 3 1 roll % h r phi
/Phi ED
- /Radius ED % h->z
+ /Radius ED % h->z on stack
Radius Phi cos mul exch % x z
Radius Phi sin mul exch % x y z
} def
@@ -74,19 +85,18 @@ tx@3DPlotDict begin
} repeat
} def
%
+%
/CalcCoordinates {% from pst-vue3d
formulesTroisD
Xi 28.45 mul Yi 28.45 mul
} def
% pour la 3D conventionnelle
-/DScreen 1 def
-/Dobs 0 def
/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 def
- /Xi xObservateur mul zObservateur Div def
- /Yi yObservateur mul zObservateur Div def
+ /Xi xObservateur zObservateur Div def
+ /Yi yObservateur zObservateur Div def
} def
%
/RotatePointXYZ{% Mxx are defined in the TeX file
@@ -123,9 +133,11 @@ tx@3DPlotDict begin
/RotatePoint { RotSequence cvx exec } def
%
/VecNorm { 0 exch { dup mul add } forall sqrt } def
+%
/UnitVec { % on stack is [a]; returns a vector with [a][a]/|a|=1
dup VecNorm /norm ED
{ norm div } forall 3 array astore } def
+%
/AxB { % on the stack are the two vectors [a][b]
aload pop /b3 ED /b2 ED /b1 ED
aload pop /a3 ED /a2 ED /a1 ED
@@ -133,11 +145,13 @@ tx@3DPlotDict begin
a3 b1 mul a1 b3 mul sub
a1 b2 mul a2 b1 mul sub
3 array astore } def
+%
/AaddB { % on the stack are the two vectors [a][b]
aload pop /b3 ED /b2 ED /b1 ED
aload pop /a3 ED /a2 ED /a1 ED
a1 b1 add a2 b2 add a3 b3 add
3 array astore } def
+%
/AmulC { % on stack is [a] and c; returns [a] mul c
/factor ED { factor mul } forall 3 array astore } def
%
@@ -149,22 +163,18 @@ tx@3DPlotDict begin
z mul exch y mul add exch x mul add
4 1 roll
z mul exch y mul add exch x mul add
- exch} def
+ exch } def
%
/setColorLight { % expects 7 values on stack C M Y K xL yL zL
% les rayons de lumière
- /zLight exch def
- /yLight exch def
- /xLight exch def
+ xLight dup mul yLight dup mul zLight dup mul add add sqrt /NormeLight ED
% the color values
/K exch def
/Yellow exch def
/Magenta exch def
/Cyan exch def
-%
- /NormeLight {xLight dup mul yLight dup mul zLight dup mul add add
- sqrt} bind def
} def
+%
/facetteSphere {
newpath
/Xpoint Rsphere theta cos mul phi cos mul CX add def
@@ -202,10 +212,8 @@ tx@3DPlotDict begin
closepath
} def
%
-/condition { PSfacette 0 ge } def
/MaillageSphere {
-% on stack must be
-% x y z Radius increment C M Y K x y zLIGHT
+% on stack must be x y z Radius increment C M Y K
setColorLight
/increment exch def
/Rsphere exch def
@@ -213,6 +221,7 @@ tx@3DPlotDict begin
/CY exch def
/CX exch def
/StartTheta 0 def
+ /condition { PSfacetteSphere 0 ge } def
-90 increment 90 increment sub {%
/phi exch def
StartTheta increment 360 StartTheta add increment sub {%
@@ -226,7 +235,8 @@ tx@3DPlotDict begin
/nYfacette Ypoint CY sub def
/nZfacette Zpoint CZ sub def
% test de visibilité
- /PSfacette vX nXfacette mul
+ /PSfacetteSphere
+ vX nXfacette mul
vY nYfacette mul add
vZ nZfacette mul add
def
@@ -252,6 +262,78 @@ tx@3DPlotDict begin
} for
} def
%
+%---------------------- Cylinder ---------------------------
+%
+/PlanCoupeCylinder { %
+ /TableauxPoints [
+ 0 1 359 {
+ /phi exch def
+ [ Radius phi Height ConvCyl2d ] % on décrit le cercle
+ } for
+ ] def
+ newpath
+ TableauxPoints 0 get aload pop moveto
+ 1 1 359 { TableauxPoints exch get aload pop lineto } for
+ closepath
+} def
+%
+/facetteCylinder { %
+ newpath
+ Radius phi currentHeight ConvCyl2d moveto
+ phi 1 phi dAngle add { % loop variable on stack
+ Radius exch currentHeight ConvCyl2d lineto
+ } for
+ phi dAngle add -1 phi { % fill dHeight
+ Radius exch currentHeight dHeight add ConvCyl2d lineto
+ } for
+ closepath
+ } def % facette
+%
+/MaillageCylinder { % on stack true or false for saving values
+ { setColorLight % expects 4 values on stack C M Y K
+ /dHeight ED /dAngle ED /Height ED /Radius ED
+ /CZ ED /CY ED /CX ED } if
+%
+ 0 dHeight Height dHeight sub {
+ /currentHeight ED
+ 0 dAngle 360 dAngle sub {
+ /phi ED
+% Normal vector of the center
+ /nXfacetteCylinder Radius phi dAngle 2 div add cos mul CX add def
+ /nYfacetteCylinder Radius phi dAngle 2 div add sin mul CY add def
+ /nZfacetteCylinder currentHeight dHeight 2 div add CZ add def
+ /NormeN
+ nXfacetteCylinder dup mul
+ nYfacetteCylinder dup mul
+ nZfacetteCylinder dup mul
+ add add sqrt def
+ NormeN 0 eq { /NormeN 1e-10 def } if
+% test de visibilité
+ /PSfacetteCylinder
+ vX nXfacetteCylinder mul
+ vY nYfacetteCylinder mul add
+ vZ nZfacetteCylinder mul add def
+ condition {
+ facetteCylinder
+ /cosV
+ 1 xLight nXfacetteCylinder mul
+ yLight nYfacetteCylinder mul
+ zLight nZfacetteCylinder mul
+ add add
+ NormeLight NormeN mul div sub def
+ Cyan Magenta Yellow K
+ cosV mul 4 1 roll cosV mul 4 1 roll
+ cosV dup mul mul 4 1 roll cosV dup mul mul 4 1 roll
+ setcmykcolor fill
+ 0 setgray
+ facetteCylinder % drawing the segments
+ stroke
+ } if
+ } for
+ } for
+} def
+%
+%------------------------ Cylinder type II -----------------------
%
/MoveTo { Conv3D2D moveto } def
/LineTo { Conv3D2D lineto } def
@@ -299,4 +381,200 @@ tx@3DPlotDict begin
stroke
} def
%
+%---------------------- Box ---------------------------
+%
+/PlanCoupeBox { % x y z
+ /TableauxPoints [
+ [ CX CY CZ Height add ConvBox2d ] % top or bottom
+ [ CX CY Depth add CZ Height add ConvBox2d ]
+ [ CX Width add CY Depth add CZ Height add ConvBox2d ]
+ [ CX Width add CY CZ Height add ConvBox2d ]
+ [ CX CY CZ Height add ConvBox2d ] % bottom
+ ] def
+ newpath
+ TableauxPoints 0 get aload pop moveto
+ 0 1 3 {
+ TableauxPoints exch get aload pop
+ lineto } for
+ closepath
+} def
+%
+/facetteBox { %
+ newpath
+ dup
+ 1 eq { % back
+ CX CY CZ ConvBox2d moveto
+ CX CY CZ Height add ConvBox2d lineto
+ CX Width add CY CZ Height add ConvBox2d lineto
+ CX Width add CY CZ ConvBox2d lineto
+ CX CY CZ ConvBox2d lineto
+ } if
+ dup
+ 2 eq { % right
+ CX CY CZ ConvBox2d moveto
+ CX CY CZ Height add ConvBox2d lineto
+ CX CY Depth add CZ Height add ConvBox2d lineto
+ CX CY Depth add CZ ConvBox2d lineto
+ CX CY CZ ConvBox2d lineto
+ } if
+ dup
+ 3 eq { % left
+ CX Width add CY CZ ConvBox2d moveto
+ CX Width add CY Depth add CZ ConvBox2d lineto
+ CX Width add CY Depth add CZ Height add ConvBox2d lineto
+ CX Width add CY CZ Height add ConvBox2d lineto
+ CX Width add CY CZ ConvBox2d lineto
+ } if
+ 4 eq { % front
+ CX CY Depth add CZ ConvBox2d moveto
+ CX CY Depth add CZ Height add ConvBox2d lineto
+ CX Width add CY Depth add CZ Height add ConvBox2d lineto
+ CX Width add CY Depth add CZ ConvBox2d lineto
+ CX CY Depth add CZ ConvBox2d lineto
+ } if
+ closepath
+ } def % facette
+%
+/TestPlane { % on stack x y z of the plane center and # of plane
+ /nZfacetteBox ED /nYfacetteBox ED /nXfacetteBox ED
+ /Plane ED
+ /NormeN
+ nXfacetteBox dup mul
+ nYfacetteBox dup mul
+ nZfacetteBox dup mul
+ add add sqrt def
+ NormeN 0 eq { /NormeN 1e-10 def } if
+% test de visibilité
+ /PSfacetteBox
+ vX nXfacetteBox mul
+ vY nYfacetteBox mul add
+ vZ nZfacetteBox mul add def
+ condition {
+ Plane facetteBox
+ /cosV
+ 1 xLight nXfacetteBox mul
+ yLight nYfacetteBox mul
+ zLight nZfacetteBox mul
+ add add
+ NormeLight NormeN mul div sub def
+ Cyan Magenta Yellow K
+ cosV mul 4 1 roll cosV mul 4 1 roll
+ cosV dup mul mul 4 1 roll cosV dup mul mul 4 1 roll
+ setcmykcolor fill
+ 0 setgray
+ Plane facetteBox % drawing the segments
+ stroke
+ } if
+} def
+%
+/MaillageBox { % on stack true or false for saving values
+ { setColorLight % expects 4 values on stack C M Y K
+ /Depth ED /Height ED /Width ED
+ /CZ ED /CY ED /CX ED } if
+%
+% Normal vector of the center
+ /PlaneSet [
+ [ Width 2 div CX add CY Height 2 div CZ add ] % normal back
+ [ CX Depth 2 div CY add Height 2 div CZ add ] % normal right
+ [ Width CX add Depth 2 div CY add Height 2 div CZ add ] % normal left
+ [ Width 2 div CX add Depth CY add Height 2 div CZ add ] % normal front
+ ] def
+ PlaneSequence length 0 eq { % user defined?
+ Alpha abs cvi 360 mod /iAlpha ED
+ iAlpha 90 lt { [ 1 2 3 4 ]
+ }{ iAlpha 180 lt { [ 2 4 1 3 ]
+ }{ iAlpha 270 lt { [ 3 4 1 2 ] }{ [ 3 1 4 2] } ifelse } ifelse } ifelse
+ }{ PlaneSequence } ifelse
+ { dup 1 sub PlaneSet exch get aload pop TestPlane } forall
+} def
+%
+%--------------------------- Paraboloid -----------------------------
+/PlanCoupeParaboloid {
+ /Z height store
+ /V {Z sqrt} bind def
+ /TableauxPoints [
+ 0 1 359 {
+ /U exch def [ U U Z V calculate2DPoint ] % on décrit le cercle
+ } for
+ ] def
+ newpath
+ TableauxPoints 0 get aload pop moveto
+ 0 1 359 {
+ /compteur exch def
+ TableauxPoints compteur get aload pop
+ lineto } for
+ closepath
+} def
+%
+/facetteParaboloid{
+ newpath
+ U U Z V calculate2DPoint moveto
+ U 1 U increment add {%
+ /U1 exch def
+ U1 U1 Z V calculate2DPoint lineto
+ } for
+ Z pas10 Z pas add pas10 add{
+ /Z1 exch def
+ /V {Z1 sqrt} bind def
+ U1 U1 Z1 V calculate2DPoint lineto
+ } for
+ U increment add -1 U {%
+ /U2 exch def
+ U2 U2 Z pas add V calculate2DPoint lineto
+ } for
+ Z pas add pas10 sub pas10 neg Z pas10 sub {
+ /Z2 exch def
+ /V Z2 abs sqrt def
+ U U Z2 V calculate2DPoint lineto
+ } for
+ closepath
+} def % facette
+%
+/MaillageParaboloid {
+ % on stack true or false for saving values
+ { setColorLight % expects 7 values on stack C M Y K xL yL zL
+% /CZ ED /CY ED /CX ED
+ } if
+ 0 pas height pas sub {%
+ /Z ED
+ /V Z sqrt def
+ 0 increment 360 increment sub {%
+ /U exch def
+% Centre de la facette
+ /Ucentre U increment 2 div add def
+ /Vcentre Z pas 2 div add sqrt def
+% normale à la facette
+ /nXfacetteParaboloid 2 Vcentre dup mul mul Ucentre cos mul radius mul def
+ /nYfacetteParaboloid 2 Vcentre dup mul mul Ucentre sin mul radius mul def
+ /nZfacetteParaboloid Vcentre neg radius dup mul mul def
+ /NormeN {
+ nXfacetteParaboloid dup mul
+ nYfacetteParaboloid dup mul
+ nZfacetteParaboloid dup mul
+ add add sqrt} bind def
+ NormeN 0 eq {/NormeN 1e-10 def} if
+% test de visibilité
+ /PSfacetteParaboloid vX nXfacetteParaboloid mul
+ vY nYfacetteParaboloid mul add
+ vZ nZfacetteParaboloid mul add def
+ condition {
+ facetteParaboloid
+ /cosV 1 xLight nXfacetteParaboloid mul
+ yLight nYfacetteParaboloid mul
+ zLight nZfacetteParaboloid mul
+ add add
+ NormeLight
+ NormeN mul div sub def
+ Cyan Magenta Yellow K
+ cosV mul 4 1 roll cosV mul 4 1 roll cosV dup mul mul 4 1 roll cosV dup mul mul 4 1 roll
+ setcmykcolor fill
+ 0 setgray
+ facetteParaboloid
+ stroke
+ } if
+ } for
+ } for
+} def
+%
+%
end
diff --git a/Master/texmf-dist/source/generic/pst-3dplot/Makefile b/Master/texmf-dist/source/generic/pst-3dplot/Makefile
deleted file mode 100644
index 294bb21f319..00000000000
--- a/Master/texmf-dist/source/generic/pst-3dplot/Makefile
+++ /dev/null
@@ -1,48 +0,0 @@
-
-# `Makefile' for `pst-3dplot.pdf', hv, 2007/03/17
-
-.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps
-
-PACKAGE = pst-3dplot
-
-MAIN = $(PACKAGE)-doc
-
-LATEX = latex
-
-ARCHNAME = $(MAIN)-$(shell date +%y%m%d)
-
-ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(PACKAGE).pro $(MAIN).tex README Changes Makefile
-
-all : doc clean
-doc: $(MAIN).pdf
-
-$(MAIN).pdf : $(MAIN).ps
- GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $<
-
-$(MAIN).ps : $(MAIN).dvi
- dvips $<
-
-$(MAIN).dvi : $(MAIN).tex
- $(LATEX) $<
- $(LATEX) $<
- if ! test -f $(basename $<).glo ; then touch $(basename $<).glo; fi
- if ! test -f $(basename $<).idx ; then touch $(basename $<).idx; fi
- makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \
- $(basename $<).glo
- makeindex -t $(basename $<).ilg -o $(basename $<).ind \
- $(basename $<).idx
- bibtex $(basename $<)
- $(LATEX) $<
- $(LATEX) $<
-
-clean :
- $(RM) $(addprefix $(MAIN), .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out .blg .Roessler .bbl )
- $(RM) $(addprefix $(MAIN), .dvi .ps)
-
-veryclean : clean
- $(RM) $(addprefix $(MAIN), .pdf .bbl .blg)
-
-arch :
- zip $(ARCHNAME).zip $(ARCHFILES)
-
-# EOF
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 88063d0edd8..ddc1e59632f 100644
--- a/Master/texmf-dist/tex/generic/pst-3dplot/pst-3dplot.tex
+++ b/Master/texmf-dist/tex/generic/pst-3dplot/pst-3dplot.tex
@@ -25,8 +25,8 @@
\ifx\PSTricksAddLoaded\endinput\else\input pstricks-add.tex\fi
\ifx\PSTMultidoLoaded\endinput\else\input multido.tex\fi
%
-\def\fileversion{1.74}
-\def\filedate{2007/06/17}
+\def\fileversion{1.75}
+\def\filedate{2007/08/15}
\message{`PST-3dplot' v\fileversion, \filedate\space (HV)}
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
@@ -63,12 +63,26 @@
\define@boolkey[psset]{pst-3dplot}[Pst@]{drawing}[true]{}% draw the coordinates?
\define@boolkey[psset]{pst-3dplot}[Pst@]{drawCoor}[true]{}% draw the coordinates of a dot?
\define@boolkey[psset]{pst-3dplot}[Pst@]{hiddenLine}[true]{}% emulate hidden line surface?
-\define@boolkey[psset]{pst-3dplot}[Pst@]{SphericalCoor}[true]{% (r,phi,theta)
- \Pst@CylindricalCoorfalse}%
-\define@boolkey[psset]{pst-3dplot}[Pst@]{CylindricalCoor}[true]{% (r,phi,z)
- \Pst@SphericalCoorfalse}%
+\define@boolkey[psset]{pst-3dplot}[Pst@]{SphericalCoor}[true]{}% (r,phi,theta)
+% \Pst@CylindricalCoorfalse}%
+\define@boolkey[psset]{pst-3dplot}[Pst@]{CylindricalCoor}[true]{}% (r,phi,z)
+% \Pst@SphericalCoorfalse}%
\define@boolkey[psset]{pst-3dplot}[Pst@]{leftHanded}[true]{}% left-Handed coor
-\psset[pst-3dplot]{drawing,drawCoor,hiddenLine=false,SphericalCoor=false,leftHanded=false}
+\define@key[psset]{pst-3dplot}{coorType}{%
+ \pst@getint{#1}\psk@ThreeDplot@coorType
+ \ifcase\psk@ThreeDplot@coorType
+ % 0 is the default
+ \or
+% \def\psk@ThreeDplot@Beta{0}
+ \or
+ \def\psk@ThreeDplot@Alpha{135}
+% \def\psk@ThreeDplot@Beta{0}
+ \fi}
+% 0 default
+% 1 z y are orthogonal and angle x|y is Alpha, Beta has no meaning
+% 1 z y are orthogonal and angle Alpha is always 135, x-axis shortened by 1/sqrt(2), Beta has no meaning
+\psset[pst-3dplot]{drawing,drawCoor,hiddenLine=false,SphericalCoor=false,
+ leftHanded=false,coorType=0}
%
% ------- the global definitions for the pspicture frame ------
%
@@ -96,6 +110,7 @@
\define@key[psset]{pst-3dplot}{RotY}{\def\psk@ThreeD@RotY{#1}}% y rotation
\define@key[psset]{pst-3dplot}{RotZ}{\def\psk@ThreeD@RotZ{#1}}% z
\define@key[psset]{pst-3dplot}{RotSequence}{\def\psk@ThreeD@RotS{#1}}%
+\define@key[psset]{pst-3dplot}{PlaneSequence}{\def\psk@ThreeD@PlaneSequence{#1}}%
\define@key[psset]{pst-3dplot}{zCoor}{\def\psk@ThreeDplot@zCoor{#1}}
\psset[pst-3dplot]{zCoor=0}
%
@@ -122,7 +137,7 @@
\define@key[psset]{pst-3dplot}{endAngle}{% for ellipse/circle arc
\def\psk@ThreeDplot@endAngle{#1}}
\define@key[psset]{pst-3dplot}{linejoin}{% how lines come together 0,1,2
- \def\psk@ThreeDplot@linejoin{#1}}
+ \def\psk@ThreeDplot@linejoin{#1 }}
\define@key[psset]{pst-3dplot}{plane}{% xy,xz,yz
\edef\psk@ThreeDplot@plane{#1}} % must be expanded
\define@key[psset]{pst-3dplot}{pOrigin}{% combination of (lr)(tBb)
@@ -134,10 +149,8 @@
%
% -------------- the length and node definitions -------------
%
-\define@key[psset]{pst-3dplot}{XO}{% the X-offset
- \def\psk@ThreeDplot@XO{#1}}
-\define@key[psset]{pst-3dplot}{YO}{% the y-offset
- \def\psk@ThreeDplot@YO{#1}}
+\define@key[psset]{pst-3dplot}{XO}{\def\psk@ThreeDplot@XO{#1}}% the X-offset
+\define@key[psset]{pst-3dplot}{YO}{\def\psk@ThreeDplot@YO{#1}}% the y-offset
\define@key[psset]{pst-3dplot}{angleStep}{% for circles
\def\psk@ThreeDplot@angleStep{#1}}
\define@key[psset]{pst-3dplot}{posStart}{% where the arrows start
@@ -151,8 +164,7 @@
\define@key[psset]{pst-3dplot}{invisibleLineStyle}{% offset for \arrowLine
\edef\psk@ThreeDplot@invisibleLineStyle{#1}}
%
-\newif\if@IIIDticks% draw the ticks?
-\define@key[psset]{pst-3dplot}{IIIDticks}[true]{\@nameuse{@IIIDticks#1}}
+\define@boolkey[psset]{pst-3dplot}[Pst@]{IIIDticks}[true]{}
\define@key[psset]{pst-3dplot}{Dz}{\def\psk@Dz{#1}}
\define@key[psset]{pst-3dplot}{IIIDxTicksPlane}{\def\psk@IIIDxTicksPlane{#1}}
\define@key[psset]{pst-3dplot}{IIIDyTicksPlane}{\def\psk@IIIDyTicksPlane{#1}}
@@ -161,18 +173,15 @@
\define@key[psset]{pst-3dplot}{IIIDxticksep}{\def\psk@IIIDxticksep{#1}}
\define@key[psset]{pst-3dplot}{IIIDyticksep}{\def\psk@IIIDyticksep{#1}}
\define@key[psset]{pst-3dplot}{IIIDzticksep}{\def\psk@IIIDzticksep{#1}}
-\define@key[psset]{pst-3dplot}{nameX}{% start of the object arrow
- \def\psk@ThreeDplot@nameX{#1}}
-\define@key[psset]{pst-3dplot}{spotX}{% where to draw the label
- \def\psk@ThreeDplot@spotX{#1}}
+\define@key[psset]{pst-3dplot}{nameX}{\def\psk@ThreeDplot@nameX{#1}}% start of the object arrow
+\define@key[psset]{pst-3dplot}{spotX}{\def\psk@ThreeDplot@spotX{#1}}% where to draw the label
\define@key[psset]{pst-3dplot}{nameY}{\def\psk@ThreeDplot@nameY{#1}}
\define@key[psset]{pst-3dplot}{spotY}{\def\psk@ThreeDplot@spotY{#1}}
\define@key[psset]{pst-3dplot}{nameZ}{\def\psk@ThreeDplot@nameZ{#1}}
\define@key[psset]{pst-3dplot}{spotZ}{\def\psk@ThreeDplot@spotZ{#1}}
%
% ### begin Torsten Suhling
-\define@key[psset]{pst-3dplot}{planecorr}{% make plane tags readable
- \def\psk@ThreeDplot@planecorr{#1}}
+\define@key[psset]{pst-3dplot}{planecorr}{\def\psk@ThreeDplot@planecorr{#1}}% make plane tags readable
\def\ThreeDplot@planecorrOff{off} % default
\def\ThreeDplot@planecorrNormal{normal} % make planes readable
\def\ThreeDplot@planecorrXYrot{xyrot} % and put tag for xy-plane
@@ -187,10 +196,15 @@
%
\define@key[psset]{pst-3dplot}{planeGrid}{\def\psk@planeGrid{#1}}
\define@key[psset]{pst-3dplot}{planeGridOffset}{\def\psk@planeGridOffset{#1}}
-\define@key[psset]{pst-3dplot}{subticks}{\def\psk@xsubticks{#1}\def\psk@ysubticks{#1}}
-\define@key[psset]{pst-3dplot}{xsubticks}{\def\psk@xsubticks{#1}}
-\define@key[psset]{pst-3dplot}{ysubticks}{\def\psk@ysubticks{#1}}
+%\define@key[psset]{pst-3dplot}{subticks}{\def\psk@xsubticks{#1}\def\psk@ysubticks{#1}}
+%\define@key[psset]{pst-3dplot}{xsubticks}{\def\psk@xsubticks{#1}}
+%\define@key[psset]{pst-3dplot}{ysubticks}{\def\psk@ysubticks{#1}}
%
+\define@boolkey[psset]{pst-3dplot}[PstThreeDplot@]{showInside}[true]{}
+\define@key[psset]{pst-3dplot}{SegmentColor}{\pst@getcolor{#1}\psk@ThreeDplot@SegmentColor}
+\define@key[psset]{pst-3dplot}{increment}{\pst@checknum{#1}\psk@ThreeDplot@increment}
+%\define@key[psset]{pst-3dplot}{CMYK}{\def\psk@ThreeDplot@CMYK{#1}}
+\define@key[psset]{pst-3dplot}{xyzLight}{\def\psk@ThreeDplot@xyzLight{#1 }}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -201,6 +215,7 @@
\pstheader{pst-3dplot.pro}
% ---- only shortcuts -------
\def\pst@3ddict{tx@3DPlotDict begin }
+\def\tx@3DPlotDict{tx@3DPlotDict begin }
\def\tx@saveCoor{\pst@3ddict saveCoor end }
\def\tx@X{\pst@3ddict x end }
\def\tx@Y{\pst@3ddict y end }
@@ -214,11 +229,11 @@
%
%
\def\setIIIDplotDefaults{%
- \psset[pst-3dplot]{%
+ \psset[pst-3dplot]{
drawing=true,hiddenLine=false,xMin=-1,xMax=4,yMin=-1,yMax=4,zMin=-1,zMax=4,
xThreeDunit=1.0,yThreeDunit=1.0,zThreeDunit=1.0,Alpha=45,Beta=30,
deltax=1,deltay=1,deltaz=1,Deltax=1,Deltay=1,Deltaz=1,
- RotX=0,RotY=0,RotZ=0,RotSequence=xyz,
+ RotX=0,RotY=0,RotZ=0,RotSequence=xyz,PlaneSequence={},
drawStyle=xLines,xPlotpoints=25,yPlotpoints=25,beginAngle=0,endAngle=360,
linejoin=1,XO=0,YO=0,angleStep=1,posStart=0,length=2,arrowOffset=0,
visibleLineStyle=solid,invisibleLineStyle=dashed,nameX=$x$,spotX=180,
@@ -227,15 +242,15 @@
Dz=1,IIIDticks=false,IIIDxTicksPlane=xy,IIIDyTicksPlane=yz,IIIDzTicksPlane=yz,
IIIDticksize=0.1,IIIDxticksep=-0.4,IIIDyticksep=-0.2,IIIDzticksep=0.2,
planecorr=off,
- planeGrid=xy,planeGridOffset=0,subticks=10,
- leftHanded=false,IIIDdAlpha=0
+ planeGrid=xy,planeGridOffset=0,%subticks=10,
+ leftHanded=false,coorType=0,IIIDdAlpha=0,
+ xyzLight=1 1 2,showInside=true,SegmentColor={[cmyk]{0.2,0.6,1,0}},increment=10
}%
\def\pst@linetype{2}% to prevent an unknown linetyp with dash
}
\setIIIDplotDefaults
%
\def\variablesIIID{
-% 0 0 translate
/RotX \psk@ThreeD@RotX\space def
/RotY \psk@ThreeD@RotY\space def
/RotZ \psk@ThreeD@RotZ\space def
@@ -263,6 +278,9 @@
/M32 RotX sin RotY cos mul def
/M33 RotX cos RotY cos mul def
/leftHanded \ifPst@leftHanded true \else false \fi def
+ /coorType \psk@ThreeDplot@coorType\space def
+ \psk@ThreeDplot@xyzLight\space
+ /zLight ED /yLight ED /xLight ED
}%
%
% (#1) -> #1 #2 #3
@@ -270,31 +288,31 @@
\def\pst@getThreeDcoor(#1,#2,#3){%
\edef\pst@coorIIID{#1\space #2\space #3\space}%
}
-\def\pst@addThreeDVec(#1)(#2)#3#4#5{%
+\def\pst@addThreeDVec(#1)(#2)#3#4#5{% (#1)+(#2)=(#3,#4,#5)
\pst@calcThreeDVec(#1)(#2)%
\let#3\pst@getValueX%
\let#4\pst@getValueY%
\let#5\pst@getValueZ%
}
-\def\pst@subThreeDVec(#1)(#2,#3,#4)#5#6#7{%
+\def\pst@subThreeDVec(#1)(#2,#3,#4)#5#6#7{% (#1)-(#2,#3,#4)=(#5,#6,#7)
\pst@calcThreeDVec(#1)(-#2,-#3,-#4)%
\let#5\pst@getValueX%
\let#6\pst@getValueY%
\let#7\pst@getValueZ%
}
-\def\pst@calcThreeDVec(#1,#2,#3)(#4,#5,#6){{%
- \pst@dima=#1 pt%
- \pst@dimb=#2 pt%
- \pst@dimc=#3 pt%
- \pst@dimf=#4 pt%
- \pst@dimg=#5 pt%
- \pst@dimh=#6 pt%
- \advance\pst@dima by \pst@dimf%
- \advance\pst@dimb by \pst@dimg%
- \advance\pst@dimc by \pst@dimh%
- \xdef\pst@getValueX{\pst@number\pst@dima}%
- \xdef\pst@getValueY{\pst@number\pst@dimb}%
- \xdef\pst@getValueZ{\pst@number\pst@dimc}%
+\def\pst@calcThreeDVec(#1,#2,#3)(#4,#5,#6){{% #1+#4; #2+#5; #3+#6
+ \pst@dima=#1 pt%
+ \pst@dimb=#2 pt%
+ \pst@dimc=#3 pt%
+ \pst@dimf=#4 pt%
+ \pst@dimg=#5 pt%
+ \pst@dimh=#6 pt%
+ \advance\pst@dima by \pst@dimf%
+ \advance\pst@dimb by \pst@dimg%
+ \advance\pst@dimc by \pst@dimh%
+ \xdef\pst@getValueX{\pst@number\pst@dima}%
+ \xdef\pst@getValueY{\pst@number\pst@dimb}%
+ \xdef\pst@getValueZ{\pst@number\pst@dimc}%
}}%
%
% the ThreeD coordinate system
@@ -320,7 +338,7 @@
\uput[\psk@ThreeDplot@spotX](xMax){\psk@ThreeDplot@nameX}%
\uput[\psk@ThreeDplot@spotY](yMax){\psk@ThreeDplot@nameY}%
\uput[\psk@ThreeDplot@spotZ](zMax){\psk@ThreeDplot@nameZ}%
- \if@IIIDticks%
+ \ifPst@IIIDticks%
% \ifnum\psk@ThreeDplot@Alpha=90\else
\pst@dimx=\psk@ThreeDplot@xMax\p@%
\pst@dima=\psk@ThreeDplot@xThreeDunit\p@%
@@ -418,8 +436,8 @@
\pssetylength\pst@dimz{#1}
\pssetylength\pst@dimf{#3}
\pst@getlength\psk@planeGridOffset\pst@dima
- \pst@cntx=\psk@xsubticks\advance\pst@cntx by \@ne
- \pst@cnty=\psk@ysubticks\advance\pst@cnty by \@ne
+ \pst@cntx=\psk@xsubticks \advance\pst@cntx by \@ne
+ \pst@cnty=\psk@ysubticks \advance\pst@cnty by \@ne
\psset{unit=1pt,planeGridOffset=\pst@dima}% we need everything in pt
\ifx\psk@planeGrid\ThreeDplot@planeXY
\multido{\rA=\strip@pt\pst@dimz+\strip@pt\pst@dx}{\pst@cntx}{%
@@ -520,9 +538,9 @@
#1\space #2\space #3\space
ConvertToCartesian
\else
- /x #1\space\psk@ThreeDplot@xThreeDunit\space mul def
- /y #2\space\psk@ThreeDplot@yThreeDunit\space mul def
- /z #3\space\psk@ThreeDplot@zThreeDunit\space mul def
+ /x #1\space \psk@ThreeDplot@xThreeDunit\space mul def
+ /y #2\space \psk@ThreeDplot@yThreeDunit\space mul def
+ /z #3\space \psk@ThreeDplot@zThreeDunit\space mul def
\fi
ConvertTo2D
x2D \pst@number\psxunit\space mul
@@ -626,32 +644,30 @@
% (#3) first direction vector ux,uy,uz
% (#4) second direction vector wx,wy,wz
%
-\def\pstThreeDSquare{\pst@object{squareIIID}}
-\def\squareIIID@i{\squareIIID@ii}
-\def\squareIIID@ii(#1)(#2)(#3){%
- \ifPst@drawCoor%
- {%
+\def\pstThreeDSquare{\pst@object{pstThreeDSquare}}
+\def\pstThreeDSquare@i(#1)(#2)(#3){%
+ \ifPst@drawCoor {%
\psset{linestyle=dashed,linewidth=0.5pt}%
\pstThreeDDot(#1)%
- \pst@addThreeDVec(#1)(#2)\pst@tempa\pst@tempb\pst@tempc%
- \pstThreeDDot(\pst@tempa,\pst@tempb,\pst@tempc)%
- \pst@addThreeDVec(#1)(#3)\pst@tempa\pst@tempb\pst@tempc
- \pstThreeDDot(\pst@tempa,\pst@tempb,\pst@tempc)%
- \pst@addThreeDVec(\pst@tempa,\pst@tempb,\pst@tempc)%
- (#2)\pst@tempa\pst@tempb\pst@tempc%
- \pstThreeDDot(\pst@tempa,\pst@tempb,\pst@tempc)%
+ \pst@addThreeDVec(#1)(#2)\pst@tempA\pst@tempB\pst@tempC%
+ \pstThreeDDot(\pst@tempA,\pst@tempB,\pst@tempC)%
+ \pst@addThreeDVec(#1)(#3)\pst@tempA\pst@tempB\pst@tempC
+ \pstThreeDDot(\pst@tempA,\pst@tempB,\pst@tempC)%
+ \pst@addThreeDVec(\pst@tempA,\pst@tempB,\pst@tempC)%
+ (#2)\pst@tempA\pst@tempB\pst@tempC%
+ \pstThreeDDot(\pst@tempA,\pst@tempB,\pst@tempC)%
}%
- \fi%
- \getThreeDCoor{#1}\pst@tempA%
- \getThreeDCoor{#2}\pst@tempB%
- \getThreeDCoor{#3}\pst@tempC%
- \begin@OpenObj
+ \fi
+ \getThreeDCoor{#1}\pst@tempAA
+ \getThreeDCoor{#2}\pst@tempBB
+ \getThreeDCoor{#3}\pst@tempCC
+ \begin@ClosedObj
\addto@pscode{%
\pst@3ddict
\variablesIIID
- /P1 { \pst@tempA\space } def % x y z or Radius longitude lattitude
- /P2 { \pst@tempB\space } def %
- /P3 { \pst@tempC\space } def %
+ /P1 { \pst@tempAA } def % x y z or Radius longitude lattitude
+ /P2 { \pst@tempBB } def %
+ /P3 { \pst@tempCC } def %
/SphericalCoor \ifPst@SphericalCoor true \else false \fi def %
/xUnit { \pst@number\psxunit\space mul } def
/yUnit { \pst@number\psyunit\space mul } def
@@ -675,7 +691,7 @@
\pst@cp\space \psline@iii\space \tx@Line\space closepath
end
}%
- \end@OpenObj%
+ \end@ClosedObj%
}
%
@@ -691,18 +707,18 @@
\begingroup%
\psset{linestyle=\psk@ThreeDplot@invisibleLineStyle}%
\psset{#1}%
- \pstVerb{ \pst@3ddict \variablesIIID end }%
+% \pstVerb{ \pst@3ddict \variablesIIID\space end }%
\iftrue
\pstThreeDSquare[#1](#2)(#4)(#5) % lower square
\pstThreeDSquare(#2)(#3)(#4)% back square
%
\psset{linestyle=\psk@ThreeDplot@visibleLineStyle}%
- \pst@addThreeDVec(#2)(#4)\pst@tempa\pst@tempb\pst@tempc
- \pstThreeDSquare[#1](\pst@tempa,\pst@tempb,\pst@tempc)(#3)(#5)% left square
- \pst@addThreeDVec(#2)(#3)\pst@tempa\pst@tempb\pst@tempc
- \pstThreeDSquare[#1](\pst@tempa,\pst@tempb,\pst@tempc)(#4)(#5)% top square
- \pst@addThreeDVec(#2)(#5)\pst@tempa\pst@tempb\pst@tempc
- \pstThreeDSquare[#1](\pst@tempa,\pst@tempb,\pst@tempc)(#3)(#4)% front square
+ \pst@addThreeDVec(#2)(#4)\pst@tempA\pst@tempB\pst@tempC
+ \pstThreeDSquare[#1](\pst@tempA,\pst@tempB,\pst@tempC)(#3)(#5)% left square
+ \pst@addThreeDVec(#2)(#3)\pst@tempA\pst@tempB\pst@tempC
+ \pstThreeDSquare[#1](\pst@tempA,\pst@tempB,\pst@tempC)(#4)(#5)% top square
+ \pst@addThreeDVec(#2)(#5)\pst@tempA\pst@tempB\pst@tempC
+ \pstThreeDSquare[#1](\pst@tempA,\pst@tempB,\pst@tempC)(#3)(#4)% front square
\else% better support for hidden lines
\pstThreeDSquare[#1](#2)(#4)(#5) % lower square
\pst@absdim{\psk@ThreeDplot@Alpha pt}\pst@dimo
@@ -807,11 +823,11 @@
\def\pstThreeDPlotFunc{\psplotThreeD}% only for compatibility
%
%
-% cone[options](center){radius}{height}
+% cone[options](center)(radiusA vec)(radiusB vec){height}
%
\def\pstThreeDCone{\pst@object{pstThreeDCone}}
\def\pstThreeDCone@i(#1)(#2)(#3)#4{{%
- \pst@usepar
+ \use@par
\pstThreeDEllipse(#1)(#2)(#3)%
\begin@OpenObj%
\getThreeDCoor{#1}\pst@tempA%
@@ -827,7 +843,8 @@
Center aload pop saveCoor ConvertTo2D /xC x2D def /yC y2D def
/rA [ \pst@tempB \space SphericalCoor { ConvertToCartesian } if ] def
/rB [ \pst@tempC \space SphericalCoor { ConvertToCartesian } if ] def
- rA rB AxB UnitVec #4 AmulC Center AaddB aload pop saveCoor ConvertTo2D /x2 x2D xUnit def /y2 y2D yUnit def
+ rA rB AxB UnitVec #4 AmulC Center AaddB aload pop
+ saveCoor ConvertTo2D /x2 x2D xUnit def /y2 y2D yUnit def
[ xC rA VecNorm add 90 Beta sub sin sub xUnit yC Beta sin add yUnit
x2 y2
xC rA VecNorm sub xUnit yC yUnit
@@ -860,25 +877,16 @@
\ignorespaces}
%
% Paraboloid (Idea is from Manuel ... )
-\newif\ifPstThreeDplot@showInside
-\define@key[psset]{pst-3dplot}{showInside}[true]{\@nameuse{PstThreeDplot@showInside@#1}}
-\define@key[psset]{pst-3dplot}{SegmentColor}{\pst@getcolor{#1}\psk@ThreeDplot@SegmentColor}
-\define@key[psset]{pst-3dplot}{increment}{\pst@checknum{#1}\psk@ThreeDplot@increment}
-%\define@key[psset]{pst-3dplot}{CMYK}{\def\psk@ThreeDplot@CMYK{#1}}
-\define@key[psset]{pst-3dplot}{xyzLight}{\def\psk@ThreeDplot@xyzLight{#1}}
-\newcmykcolor{SegColor}{0.2 0.6 1 0}
-\psset[pst-3dplot]{xyzLight=1 1 2,showInside=true,SegmentColor=SegColor,increment=10}
-%\psset[pst-3dplot]{xyzLight=1 1 2,showInside=true,SegmentColor={[cmyk]{0.2,0.6,1,0}},increment=10}
%
\def\pstParaboloid{\pst@object{pstParaboloid}}
-\def\pstParaboloid@i#1#2{% #1:height #2:radius
+\def\pstParaboloid@i{\@ifnextchar(\pstParaboloid@ii{\pstParaboloid@ii(0,0,0)}}
+\def\pstParaboloid@ii(#1,#2,#3)#4#5{% #1:height #2:radius
\addto@par{viewpoint=0 0 0}%
\begin@SpecialObj%
\addto@pscode{%
- /height #1 def
- /radius #2 #1 sqrt div def
+ /height #4 def
+ /radius #5 #4 sqrt div def
/increment \psk@ThreeDplot@increment\space def
- /cmyk {} def
/viewpoint {
\psk@viewpoint
\psk@ThreeDplot@Beta\space sin add 3 1 roll
@@ -886,120 +894,34 @@
\psk@ThreeDplot@Alpha\space sin add \psk@ThreeDplot@Beta\space cos mul 3 1 roll
} def
0 viewpoint 0 \tx@SetMatrixThreeD
- viewpoint /vZ ED /vY ED /vX ED
- 1 setlinejoin
- % les rayons de lumière
- /xLight 1 def
- /yLight 0.1 def
- /zLight 0.2 def
- % précision du tracè
+ viewpoint
+ \pst@3ddict /vZ ED /vY ED /vX ED
+ \variablesIIID
+ \psk@ThreeDplot@linejoin setlinejoin
/pas 0.5 def
- /pas10 {pas 10 div} bind def
+ /pas10 pas 10 div def
+ /cmyk {} def % we need only the values
+ \psk@ThreeDplot@SegmentColor\space
+% \psk@ThreeDplot@xyzLight\space % xLight yLight zLight
%
- /NormeLight {xLight dup mul yLight dup mul zLight dup mul add add sqrt} bind def
-% l'ellipse du plan de coupe : le contour
/calculate2DPoint { % four values on stack; x2D y2D are returned
/V0 ED /Z0 ED /U20 ED /U10 ED
- U10 cos V0 mul radius mul \pst@number\psunit mul
- U20 sin V0 mul radius mul \pst@number\psunit mul
- Z0 \pst@number\psunit mul \tx@ProjThreeD
- } def
- /PlanCoupe {
- /Z height store
- /V {Z sqrt} bind def
- /TableauxPoints [
- 0 1 359 {
- /U exch def [ U U Z V calculate2DPoint ] % on décrit le cercle
- } for
- ] def
- newpath
- TableauxPoints 0 get aload pop moveto
- 0 1 359 {
- /compteur exch def
- TableauxPoints compteur get aload pop
- lineto } for
- closepath
- } def
-%
- /facette {
- newpath
- U U Z V calculate2DPoint moveto
- U 1 U increment add {%
- /U1 exch def
- U1 U1 Z V calculate2DPoint lineto
- } for
- Z pas10 Z pas add pas10 add{
- /Z1 exch def
- /V {Z1 sqrt} bind def
- U1 U1 Z1 V calculate2DPoint lineto
- } for
- U increment add -1 U {%
- /U2 exch def
- U2 U2 Z pas add V calculate2DPoint lineto
- } for
- Z pas add pas10 sub pas10 neg Z pas10 sub{
- /Z2 exch def
- /V {Z2 abs sqrt} bind def
- U U Z2 V calculate2DPoint lineto
- } for
- closepath
- } def % facette
-%
- /MaillageParaboloid {
- 0 pas height pas sub{%
- /Z ED
- /V {Z sqrt} bind def
- 0 increment 360 increment sub {%
- /U exch def
-% Centre de la facette
- /Ucentre {U increment 2 div add} bind def
- /Vcentre {Z pas 2 div add sqrt} bind def
-% normale à la facette
- /nXfacette {2 Vcentre dup mul mul Ucentre cos mul radius mul} bind def
- /nYfacette {2 Vcentre dup mul mul Ucentre sin mul radius mul} bind def
- /nZfacette {Vcentre neg radius dup mul mul} bind def
- /NormeN {
- nXfacette dup mul
- nYfacette dup mul
- nZfacette dup mul
- add add sqrt} bind def
- NormeN 0 eq {/NormeN 1e-10 def} if
-% test de visibilité
- /PSfacette vX nXfacette mul
- vY nYfacette mul add
- vZ nZfacette mul add def
- condition {
- facette
- /cosV {1 xLight nXfacette mul
- yLight nYfacette mul
- zLight nZfacette mul
- add add
- NormeLight
- NormeN mul div sub} bind def
- \psk@ThreeDplot@SegmentColor\space
- cosV mul 4 1 roll cosV mul 4 1 roll cosV dup mul mul 4 1 roll cosV dup mul mul 4 1 roll
- setcmykcolor fill
- 0 setgray
- facette
- stroke
- } if
- } for
- } for
+ U10 cos V0 mul radius mul #1 add \pst@number\psunit mul
+ U20 sin V0 mul radius mul #2 add \pst@number\psunit mul
+ Z0 #3 add \pst@number\psunit mul \tx@ProjThreeD
} def
- /conditionGE { PSfacette 0 ge } def
- /conditionLE { PSfacette 0 le } def
+ /condition { PSfacetteParaboloid 0 le } def
+ true MaillageParaboloid
+ /condition { PSfacetteParaboloid 0 ge } def
+ false MaillageParaboloid
\ifPstThreeDplot@showInside
- /condition { conditionGE } def
- MaillageParaboloid
+ /condition { PSfacetteParaboloid 0 ge } def
+ false MaillageParaboloid
vZ 0 ge {
- PlanCoupe 1 0.5 0.5 setrgbcolor fill
- PlanCoupe 0 setgray stroke } if
- \else
- /condition { conditionLE } def
- MaillageParaboloid
- /condition { conditionGE } def
- MaillageParaboloid
+ PlanCoupeParaboloid 1 0.5 0.5 setrgbcolor fill
+ PlanCoupeParaboloid 0 setgray stroke } if
\fi
+ end
}%
% fin du code ps
\showpointsfalse%
@@ -1011,6 +933,7 @@
\def\pstSphereIIID@i(#1,#2,#3)#4{% #1:origin (x,y,z) #2:radius
\addto@par{viewpoint=0 0 0}% to make it compatible with pst-3dplot
\begin@SpecialObj%
+\use@par
\addto@pscode{%
/viewpoint {% to make it compatible with parallel projection
\psk@viewpoint
@@ -1027,9 +950,10 @@
\psk@ThreeDplot@increment\space
/cmyk {} def % we need only the values
\psk@ThreeDplot@SegmentColor\space
-% \psk@ThreeDplot@CMYK\space % CMYK
- \psk@ThreeDplot@xyzLight\space % xLight yLight zLight
- tx@3DPlotDict begin MaillageSphere end
+% \psk@ThreeDplot@xyzLight\space % xLight yLight zLight
+ tx@3DPlotDict begin
+ \variablesIIID
+ MaillageSphere end
}% fin du code ps
\showpointsfalse%
\end@SpecialObj%
@@ -1094,6 +1018,119 @@
\end@ClosedObj
}\ignorespaces}
%
+%-------------------------- Cylinder ----------------------------
+%
+\def\psCylinder{\pst@object{psCylinder}}
+\def\psCylinder@i{\@ifnextchar(\psCylinder@ii{\psCylinder@ii(0,0,0)}}
+\def\psCylinder@ii(#1,#2,#3)#4#5{% #1,#2,#3: center of the bottom #4:radius #5:height
+\addto@par{viewpoint=0 0 0}%
+\pssetlength\pst@dima{#4}
+\pssetlength\pst@dimb{#5}
+\begin@SpecialObj%
+\use@par
+\addto@pscode {
+ /viewpoint {
+ \psk@viewpoint
+ \psk@ThreeDplot@Beta\space sin add 3 1 roll
+ \psk@ThreeDplot@Alpha\space cos add \psk@ThreeDplot@Beta\space cos mul 3 1 roll
+ \psk@ThreeDplot@Alpha\space sin add \psk@ThreeDplot@Beta\space cos mul 3 1 roll
+ } def
+ 0 viewpoint 0 \tx@SetMatrixThreeD
+ viewpoint
+ \pst@3ddict /vZ ED /vY ED /vX ED
+ \variablesIIID end
+ \psk@ThreeDplot@linejoin setlinejoin
+%
+ #1 #2 #3 \ifPst@CylindricalCoor \tx@ConvCylToCartesian \fi
+ \pst@number\pst@dima \pst@number\psxunit div % Radius
+ \pst@number\pst@dimb \pst@number\psyunit div % Height
+ \psk@ThreeDplot@increment % angle increment
+ 0.5 % height increment
+ /cmyk {} def % we need only the values
+ \psk@ThreeDplot@SegmentColor\space
+%
+ \tx@3DPlotDict
+ /ConvCyl2d { % on stack r phi h
+ ConvCylToCartesian
+ CZ add /z ED CY add /y ED CX add /x ED
+ RotatePoint x y z Conv3D2D
+ \pst@number\psyunit mul exch
+ \pst@number\psxunit mul exch
+ } def % on stack x y
+ /condition { PSfacetteCylinder 0 le } def % inside
+ true MaillageCylinder % save paras
+ /condition { PSfacetteCylinder 0 ge } def % outside
+ false MaillageCylinder % use old paras
+ \ifPstThreeDplot@showInside\else
+ vZ 0 ge { % viewpoint coor
+ PlanCoupeCylinder 1 0.5 0.5 setrgbcolor fill
+ PlanCoupeCylinder 0 setgray stroke } if
+ \fi
+ end
+ }%
+% fin du code ps
+ \showpointsfalse%
+ \end@SpecialObj%
+\ignorespaces}
+%
+%-------------------------- Box ----------------------------
+%
+\def\psBox{\pst@object{psBox}}
+\def\psBox@i{\@ifnextchar(\psBox@ii{\psBox@ii(0,0,0)}}
+\def\psBox@ii(#1,#2,#3)#4#5#6{% #1,#2,#3: center of the lower left edge
+ % #4:width #5:height #6:depth
+\addto@par{viewpoint=0 0 0}%
+\pssetlength\pst@dima{#4}
+\pssetlength\pst@dimb{#5}
+\pssetlength\pst@dimc{#5}
+\begin@SpecialObj%
+\use@par
+\addto@pscode {
+ /viewpoint {
+ \psk@viewpoint
+ \psk@ThreeDplot@Beta\space sin add 3 1 roll
+ \psk@ThreeDplot@Alpha\space cos add \psk@ThreeDplot@Beta\space cos mul 3 1 roll
+ \psk@ThreeDplot@Alpha\space sin add \psk@ThreeDplot@Beta\space cos mul 3 1 roll
+ } def
+ 0 viewpoint 0 \tx@SetMatrixThreeD
+ viewpoint
+ \tx@3DPlotDict
+ /vZ ED /vY ED /vX ED
+ \variablesIIID
+ \psk@ThreeDplot@linejoin setlinejoin
+%
+ #1 #2 #3
+ \pst@number\pst@dima \pst@number\psxunit div % Width
+ \pst@number\pst@dimb \pst@number\psyunit div % Height
+ \pst@number\pst@dimc \pst@number\psyunit div % Depth
+ /cmyk {} def % we need only the values
+ \psk@ThreeDplot@SegmentColor\space
+%
+ /PlaneSequence [ \psk@ThreeD@PlaneSequence ] def
+ /ConvBox2d { % on stack x y z
+ CZ add /z ED CY add /y ED CX add /x ED
+ RotatePoint x y z Conv3D2D
+ \pst@number\psyunit mul exch
+ \pst@number\psxunit mul exch
+ } def % on stack x y
+ /condition { PSfacetteBox 0 le } def % inside
+ true MaillageBox % save paras
+ /condition { PSfacetteBox 0 ge } def % outside
+ false MaillageBox % use old paras
+ \ifPstThreeDplot@showInside\else
+ vZ 0 ge { % viewpoint coor
+ PlanCoupeBox 1 0.5 0.5 setrgbcolor fill
+% /Height 0 def
+ PlanCoupeBox 0 setgray stroke } if
+ \fi
+ end
+ }%
+% fin du code ps
+ \showpointsfalse%
+ \end@SpecialObj%
+\ignorespaces}
+%
+%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\def\psplotinit#1{\xdef\psplot@init{#1 }}
@@ -1418,7 +1455,7 @@
\@nameuse{endplot@\psplotstyle}%
}
%
-% Plot 3D data
+%------------------------ Plot 3D data --------------------------
%
\def\fileplotThreeD{\def\pst@par{}\pst@object{fileplotThreeD}}
\def\fileplotThreeD@i#1{%
@@ -1489,26 +1526,26 @@
%
%
\pst@def{ScalePointsThreeD}<%
- counttomark dup dup cvi eq not { exch pop } if
- /m exch def /n m 3 div cvi def
- n { % now we have x y z
- 3 -1 roll % y z x
- \psk@ThreeDplot@xThreeDunit\space div
- dup % y z x x
- neg Alpha cos mul % y z x (x)
- 4 -1 roll % z x (x) y
- \psk@ThreeDplot@yThreeDunit\space div
- dup % z x (x) y y
- 5 1 roll % y z x (x) y
- Alpha sin mul add \pst@number\psxunit mul % y z x (x2)
- 4 1 roll % (x2) y z x
- Alpha sin mul % (x2) y z (x)
- 3 -1 roll % (x2) z (x) y
- Alpha cos mul add neg Beta sin mul % (x2) z (x)
- exch % (x2) (x) z
- \psk@ThreeDplot@zThreeDunit\space div
- Beta cos mul add \pst@number\psyunit mul % (x2) (y2)
- m 1 sub 1 roll m 1 sub 1 roll /m m 3 sub def } repeat>
+ counttomark dup dup cvi eq not { exch pop } if
+ /m exch def /n m 3 div cvi def
+ n { % now we have x y z
+ 3 -1 roll % y z x
+ \psk@ThreeDplot@xThreeDunit\space div
+ dup % y z x x
+ neg Alpha cos mul % y z x (x)
+ 4 -1 roll % z x (x) y
+ \psk@ThreeDplot@yThreeDunit\space div
+ dup % z x (x) y y
+ 5 1 roll % y z x (x) y
+ Alpha sin mul add \pst@number\psxunit mul % y z x (x2)
+ 4 1 roll % (x2) y z x
+ Alpha sin mul % (x2) y z (x)
+ 3 -1 roll % (x2) z (x) y
+ Alpha cos mul add neg Beta sin mul % (x2) z (x)
+ exch % (x2) (x) z
+ \psk@ThreeDplot@zThreeDunit\space div
+ Beta cos mul add \pst@number\psyunit mul % (x2) (y2)
+ m 1 sub 1 roll m 1 sub 1 roll /m m 3 sub def } repeat>
%
% listplotThreeD
%
@@ -1516,10 +1553,7 @@
\def\listplotThreeD@i#1{\listplotThreeD@ii{\addto@pscode{#1}}}
\def\listplotThreeD@ii#1{%
\@nameuse{beginplot@\psplotstyle}%
- \addto@pscode{%
- \variablesIIID
- /D {} def mark %
- }%
+ \addto@pscode{ \variablesIIID /D {} def mark }%
#1%
\addto@pscode{\tx@ScalePointsThreeD}%
\@nameuse{endplot@\psplotstyle}%
diff --git a/Master/texmf-dist/tex/latex/pst-3dplot/pst-3dplot.sty b/Master/texmf-dist/tex/latex/pst-3dplot/pst-3dplot.sty
deleted file mode 100644
index 23c451d5d20..00000000000
--- a/Master/texmf-dist/tex/latex/pst-3dplot/pst-3dplot.sty
+++ /dev/null
@@ -1,8 +0,0 @@
-\RequirePackage{pstricks}
-\ProvidesPackage{pst-3dplot}[2006/02/07 package wrapper for
- pst-3dplot.tex (hv)]
-\input{pst-3dplot.tex}
-\IfFileExists{pst-3dplot.pro}{\@addtofilelist{pst-3dplot.pro}}{}%
-\ProvidesFile{pst-3dplot.tex}
- [\filedate\space v\fileversion\space `PST-3dplot' (hv)]
-\endinput