summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-11-14 19:41:50 +0000
committerKarl Berry <karl@freefriends.org>2008-11-14 19:41:50 +0000
commit33d655a1e6d73f28a58b8ef484baa8607ed14530 (patch)
tree8df80b9dbb55893eb17a0eae4eefcfecacec2def /Master
parent6a8e4cf500d3b7bcb972313c3393d70c4696c36b (diff)
pst-3dplot 1.82 (13nov08)
git-svn-id: svn://tug.org/texlive/trunk@11300 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/generic/pst-3dplot/Changes14
-rw-r--r--Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.bib4
-rw-r--r--Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.pdfbin2249172 -> 2274425 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.tex596
-rw-r--r--Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro56
-rw-r--r--Master/texmf-dist/source/generic/pst-3dplot/Makefile24
-rw-r--r--Master/texmf-dist/tex/generic/pst-3dplot/pst-3dplot.tex200
-rw-r--r--Master/texmf-dist/tex/latex/pst-3dplot/pst-3dplot.sty4
-rwxr-xr-xMaster/tlpkg/bin/ctan2tds1
9 files changed, 537 insertions, 362 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-3dplot/Changes b/Master/texmf-dist/doc/generic/pst-3dplot/Changes
index 0203f70e8a2..152f42d9895 100644
--- a/Master/texmf-dist/doc/generic/pst-3dplot/Changes
+++ b/Master/texmf-dist/doc/generic/pst-3dplot/Changes
@@ -1,8 +1,9 @@
pst-3dplot.pro --------
-0.26 2007-01-03 - add routine for vector length
-0.25 2007-12-22 - add code for special rotating (Darrell Lamm)
-0.24 2007-08-30 - add code for special node calculating
-0.23 2007-08-18 - add coorType 0,1,2,3 code for convertTo2D
+0.27 2008-11-12 add routine for scalar and vector product
+0.26 2007-01-03 add routine for vector length
+0.25 2007-12-22 add code for special rotating (Darrell Lamm)
+0.24 2007-08-30 add code for special node calculating
+0.23 2007-08-18 add coorType 0,1,2,3 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)
@@ -12,6 +13,11 @@ pst-3dplot.pro --------
pst-3dplot.tex --------
+1.82 2008-11-12 - rewrote \pstThreeDCircle to allow non perpendicular vectors
+ for the circle plane
+1.81 2008-04-05 - rename the internal variablesIIID to prevent clash
+ with other packages
+ - change name off for planecorr to none
1.80 2008-02-08 - do not define the algebraic option, use the
one from pstricks-add
1.79 2008-01-03 - add option algebraic for 3d plots
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 721cd671185..953dcdda342 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
@@ -102,9 +102,9 @@
@Book{PSTricks2,
author = {Herbert Vo\ss},
title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
- edition = {4.},
+ edition = {5.},
publisher = {DANTE -- Lehmanns},
- year = {2007},
+ year = {2008},
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 a8a1f2ee283..404a71cc82e 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 8915b091df2..fca24399945 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
@@ -1,7 +1,5 @@
-%% $Id: pst-3dplot-doc.tex 9 2008-01-03 20:22:50Z herbert $
+%% $Id: pst-3dplot-doc.tex 50 2008-11-12 13:44:21Z herbert $
\listfiles
-\documentclass[11pt,a4paper]{article}
-
\begin{filecontents}{data3D.Roessler}
2.0, 0.0, 0.0
1.9737089990827656, 0.31348417289942826, 0.024766924774833776
@@ -450,85 +448,61 @@
-2.110903216184799, 4.7165768459672535, 0.2800581822396751
\end{filecontents}
+\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings
+ headexclude,footexclude,oneside]{pst-doc}
+\usepackage[utf8]{inputenc}
+\usepackage{pst-3dplot}
+\let\myFV\fileversion
-
-\usepackage{ccfonts}
-\usepackage[euler-digits]{eulervm}
-\usepackage[T1]{fontenc}
-\usepackage[latin1]{inputenc}
-\usepackage[scaled=0.85]{luximono}
-\usepackage{amsmath}
-\usepackage{graphicx}
-\usepackage{geometry}
-\usepackage{pstricks}
\usepackage{pst-grad}
\usepackage{showexpl}
\usepackage{tabularx}
\lstset{wide=true}
-\usepackage{pst-3dplot}
-\let\myFV\fileversion
-\usepackage{url}
-\usepackage[bottom]{footmisc}
-\usepackage{fancyhdr}
-\usepackage{abstract}
-\usepackage{calc}
-\usepackage{comment}
-\usepackage{prettyref}
-%\usepackage[scaled=0.8]{luximono}
-\pagestyle{fancy}
-\usepackage{url}
\usepackage{longtable}
\def\UrlFont{\small\ttfamily}
\makeatletter
\def\verbatim@font{\small\normalfont\ttfamily}
\makeatother
-\def\Lcs#1{{\ttfamily\textbackslash #1}}
-\lfoot{\small\ttfamily\jobname.tex}
-\cfoot{Documentation}
-\rfoot{\thepage}
-\lhead{PSTricks}% package \texttt{pst-3dplot}}
-\renewcommand{\headrulewidth}{0pt}
-\renewcommand{\footrulewidth}{0pt}
\let\myPart\part
\renewcommand{\part}[1]{\clearpage\myPart{#1}}
-\newcommand{\PS}{PostScript}
-\newcommand\CMD[1]{\texttt{\textbackslash#1}}
\newcommand\verbI[1]{\small\texttt{#1}}
\psset{subgriddiv=0,gridlabels=7pt,gridcolor=black!15}
-\usepackage[pdfauthor={Herbert Voss},pdftitle={3D Plots},linktocpage,colorlinks]{hyperref}
-%
-
+\hypersetup{pdfauthor={Herbert Voss},pdftitle={3D Plots}}
%
\begin{document}
-\author{Herbert Voß\thanks{hv@pstricks.de}\\[3pt]
-\small with contributions from Darrell Lamm\thanks{darrell.lamm@gtri.gatech.edu}}
+\author{Herbert Voß}
+\docauthor{}
\date{\today}
-\title{3D plots: PST-3dplot v\myFV\\Documentation}
-
+\title{3D plots: PST-3dplot}
+\subtitle{A PSTricks package for drawing 3d objects, v\myFV}
\maketitle%
-\begin{abstract}
-The well known \verbI{pstricks} package offers excellent macros to insert more or less complex
-graphics into a document. \verbI{pstricks} itself is the base for several other additional packages,
-which are mostly named \verbI{pst-xxxx}, like \verbI{pst-3dplot}.
-
-There exist several packages for plotting three dimensional graphical objects. \verbI{pst-3dplot}
-is similiar to the \verbI{pst-plot} package for two dimensional objects and mathematical functions.
-This version uses the extended keyval package \verb+xkeyval+, so be sure that you have installed
-this package together with the spcecial one \verb+pst-xkey+ for PSTricks. The \verb+xkeyval+
-package is available at \href{ftp://ftp.dante.de/pub/tex/macros/latex/contrib/xkeyval/}{CTAN:/macros/latex/contrib/xkeyval/}.
-It is also important that after \verb+pst-3dplot+ no package is loaded, which uses the old keyval interface.
-\vspace*{2cm}
-\end{abstract}%
-
-\clearpage
\tableofcontents
\clearpage
+\begin{abstract}
+The well known \LPack{pstricks} package offers excellent macros to insert more or less complex
+graphics into a document. \LPack{pstricks} itself is the base for several other additional packages,
+which are mostly named \nxLPack{pst-xxxx}, like \LPack{pst-3dplot}.
+%
+There exist several packages for plotting three dimensional graphical objects. \LPack{pst-3dplot}
+is similiar to the \LPack{pst-plot} package for two dimensional objects and mathematical functions.
+
+This version uses the extended keyval package \LPack{xkeyval}, so be sure that you have installed
+this package together with the spcecial one \LPack{pst-xkey} for PSTricks. The \LPack{xkeyval}
+package is available at \href{http://www.dante.de/CTAN/macros/latex/contrib/xkeyval/}{CTAN:/macros/latex/contrib/xkeyval/}.
+It is also important that after \LPack{pst-3dplot} no package is loaded, which uses the old keyval interface.
+\vfill
+Thanks for feedback and contributions to:\\
+Bruce Burlton | Christophe Jorssen | Chris Kuklewicz | Darrell Lamm | Rolf Niepraschk | Uwe Siart |
+Thorsten Suhling
+
+\end{abstract}
+
\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$)
+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$).
\begin{figure}[htb]
@@ -584,15 +558,14 @@ with a transformation into $P^*(x^*,y^*)$, the Point in the two dimensional syst
%\put(3.5,1.25){\line(-1,0){0.5}}
\put(4.9,1.5){\makebox(0,0)[r]{$y\cdot\cos\alpha+x\cdot\sin\alpha$}}
\end{picture}%
-\caption{Lengths in a three dimensional System}
-\label{Abb0-1}
+\caption{Lengths in a three dimensional System}\label{Abb0-1}
\end{figure}
The angle $\alpha$ is the horizontal rotation with positive values for anti clockwise rotations
of the 3D coordinates. The angle $\beta$ is the vertical rotation (orthogonal to the paper plane).
-In figure \ref{Abb0-2} we have $\alpha=\beta=0$. The y-axis comes perpendicular out of the paper
-plane. Figure \ref{Abb0-3} shows the same for another angle with a view from the side, where the
+In figure~\ref{Abb0-2} we have $\alpha=\beta=0$. The y-axis comes perpendicular out of the paper
+plane. Figure~\ref{Abb0-3} shows the same for another angle with a view from the side, where the
x-axis shows into the paper plane and the angle $\beta$ is greater than $0$ degrees.
\begin{figure}[htb]
@@ -622,7 +595,7 @@ x^{*}=-x\cdot\cos\alpha+y\cdot\sin\alpha
The z-coordinate is unimportant, because the rotation comes out of the paper plane, so we have
only a different $y^*$ value for the two dimensional coordinate but no other $x^*$ value.
The $\beta$ angle is well seen in figure \ref{Abb0-3} which derives from figure \ref{Abb0-2},
-if the coordinate system is rotated by $90°$ horizontally to the left and vertically by $\beta$
+if the coordinate system is rotated by $90$\textdegree\ horizontally to the left and vertically by $\beta$
also to the left.
\begin{figure}[htbp]
@@ -653,7 +626,10 @@ also to the left.
\end{figure}
-The value of the perpendicular projected z coordinate is $z^{*}=z\cdot cos\beta$. With figure \ref{Abb0-3} we see, that the point $P(x,y,z)$ runs on an elliptical curve when $\beta$ is constant and $\alpha$ changes continues. The vertical alteration of $P$ id the difefrence of the two {}``perpendicular'' lines $y\cdot\cos\alpha$ and $x\cdot\sin\alpha$.
+The value of the perpendicular projected z coordinate is $z^{*}=z\cdot cos\beta$. With
+figure~\ref{Abb0-3} we see, that the point $P(x,y,z)$ runs on an elliptical curve when
+$\beta$ is constant and $\alpha$ changes continues. The vertical alteration of $P$ id
+the difefrence of the two "`perpendicular"' lines $y\cdot\cos\alpha$ and $x\cdot\sin\alpha$.
These lines are rotated by the angle $\beta$, so we have them to multiply with $\sin\beta$ to
get the vertical part. We get the following transformation equations:
@@ -680,16 +656,16 @@ get the vertical part. We get the following transformation equations:
All following figures show a grid, which has only the sense to make things clearer.
\section{Options}
-All options which are set with \verb|psset| are global and all which are passed with the optional
+All options which are set with \Lcs{psset} are global and all which are passed with the optional
argument of a macro are local for this macro. This is an important fact for setting the angles
-\verb|Alpha| and \verb|Beta|. Mostly all macro need these values, this is the reason why they
-should be set with \verb|psset| and not part of an optional argument.
+\Lkeyword{Alpha} and \Lkeyword{Beta}. Mostly all macro need these values, this is the reason why they
+should be set with \Lcs{psset} and not part of an optional argument.
\section{Coordinates}
-\verb+pst-3dplot+ accepts cartesian or spherical coordinates. In both cases there
+\LPack{pst-3dplot} accepts cartesian or spherical coordinates. In both cases there
must be three parameters: \verb+(x,y,z)+ or alternatively ($r$,$\phi$,$\theta$),
where $r$ is the radius, $phi$ the longitude angle and $\theta$ the lattitude angle.
-For the spherical coordinates set the option \verb+SphericalCoor=true+. Spherical coordinates
+For the spherical coordinates set the option \Lkeyset{SphericalCoor=true}. Spherical coordinates
are possible for all macros where three dimensional coordinates are expected, except
for the plotting functions (math functions and data records). Maybe that this is also interesting
for someone, then let me know.
@@ -698,13 +674,15 @@ for someone, then let me know.
\section{Coordinate axes}
The syntax for drawing the coordinate axes is
-{\footnotesize\begin{verbatim}
-\pstThreeDCoor[<options>]
-\end{verbatim}}
-The only special option is \verb/drawing=true|false/, which enables the drawing of the
-coordinate axes. The default is true. In nearly all cases the \verb|\pstThreeDCoor| macro
-must be part of any drawing to initialize the 3d-system. If \verb+drawing+ is set to \verb+false+, then all ticklines options are also disabled.
+\begin{BDef}
+\Lcs{pstThreeDCoor}\OptArgs
+\end{BDef}
+
+The only special option is \Lkeyword{drawing}\texttt{=true|false}, which enables the drawing of the
+coordinate axes. The default is true. In nearly all cases the \Lcs{pstThreeDCoor} macro
+must be part of any drawing to initialize the 3d-system. If \Lkeyword{drawing} is set to
+\verb+false+, then all ticklines options are also disabled.
Without any options we get the default view with the in table~\ref{tab:coor}
listed options with the predefined values.
@@ -717,46 +695,47 @@ listed options with the predefined values.
\endfirsthead
\textrm{Name} & \textrm{Type} & \textrm{Default}\\\hline
\endhead
-Alpha & <angle> & 45\\
-Beta & <angle> & 30\\
-xMin & <value> & -1\\ %ok
-xMax & <value> & 4\\ %ok
-yMin & <value> & -1\\ %ok
-yMax & <value> & 4\\ %ok
-zMin & <value> & -1\\ %ok
-zMax & <value> & 4\\ %ok
-nameX & <string> & \$x\$\\
-spotX & <angle> & 180\\
-nameY & <string> & \$y\$\\
-spotY & <angle> & 0\\
-nameZ & <string> & \$z\$\\
-spotZ & <angle> & 90\\
-IIIDticks & false|true & false\\
-Dx & <value> & 1\\
-Dy & <value> & 1\\
-Dz & <value> & 1\\
-IIIDxTicksPlane & xy|xz|yz & xy\\
-IIIDyTicksPlane & xy|xz|yz & yz\\
-IIIDzTicksPlane & xy|xz|yz & yz\\
-IIIDticksize & <value> & 0.1\\
-IIIDxticksep & <value> & -0.4\\
-IIIDyticksep & <value> & -0.2\\
-IIIDzticksep & <value> & 0.2\\
-RotX & <angle> & 0\\
-RotY & <angle> & 0\\
-RotZ & <angle> & 0\\
-RotAngle & <angle> & 0\\
-xRotVec & <angle> & 0\\
-yRotVec & <angle> & 0\\
-zRotVec & <angle> & 0\\
-RotSequence & xyz|xzy|yxz|yzx|zxy|zyx|quaternion & xyz\\
-RotSet & set|concat|keep & set\\
-eulerRotation & true|false & false\\
+\Lkeyword{Alpha} & <angle> & 45\\
+\Lkeyword{Beta} & <angle> & 30\\
+\Lkeyword{xMin} & <value> & -1\\ %ok
+\Lkeyword{xMax} & <value> & 4\\ %ok
+\Lkeyword{yMin} & <value> & -1\\ %ok
+\Lkeyword{yMax} & <value> & 4\\ %ok
+\Lkeyword{zMin} & <value> & -1\\ %ok
+\Lkeyword{zMax} & <value> & 4\\ %ok
+\Lkeyword{nameX} & <string> & \$x\$\\
+\Lkeyword{spotX} & <angle> & 180\\
+\Lkeyword{nameY} & <string> & \$y\$\\
+\Lkeyword{spotY} & <angle> & 0\\
+\Lkeyword{nameZ} & <string> & \$z\$\\
+\Lkeyword{spotZ} & <angle> & 90\\
+\Lkeyword{IIIDticks} & false|true & false\\
+\Lkeyword{Dx} & <value> & 1\\
+\Lkeyword{Dy} & <value> & 1\\
+\Lkeyword{Dz} & <value> & 1\\
+\Lkeyword{IIIDxTicksPlane} & xy|xz|yz & xy\\
+\Lkeyword{IIIDyTicksPlane} & xy|xz|yz & yz\\
+\Lkeyword{IIIDzTicksPlane} & xy|xz|yz & yz\\
+\Lkeyword{IIIDticksize} & <value> & 0.1\\
+\Lkeyword{IIIDxticksep} & <value> & -0.4\\
+\Lkeyword{IIIDyticksep} & <value> & -0.2\\
+\Lkeyword{IIIDzticksep} & <value> & 0.2\\
+\Lkeyword{RotX} & <angle> & 0\\
+\Lkeyword{RotY} & <angle> & 0\\
+\Lkeyword{RotZ} & <angle> & 0\\
+\Lkeyword{RotAngle} & <angle> & 0\\
+\Lkeyword{xRotVec} & <angle> & 0\\
+\Lkeyword{yRotVec} & <angle> & 0\\
+\Lkeyword{zRotVec} & <angle> & 0\\
+\Lkeyword{RotSequence} & xyz|xzy|yxz|yzx|zxy|zyx|quaternion & xyz\\
+\Lkeyword{RotSet} & set|concat|keep & set\\
+\Lkeyword{eulerRotation} & true|false & false\\
\end{longtable}
}
-\begin{LTXexample}[width=6cm]
+\lstset{wide=false}
+\begin{LTXexample}[width=4.25cm]
\begin{pspicture}(-3,-2.5)(3,4.25)
\pstThreeDCoor
\end{pspicture}
@@ -771,10 +750,9 @@ important to all macros and should always be set with \verbI{psset} to make the
other macros. Otherwise they are only local inside the macro to which they are passed.}}
\medskip
-\verb+Alpha+ ist the horizontal and \verb+Beta+ the vertical rotation angle of the
+\Lkeyword{Alpha} ist the horizontal and \Lkeyword{Beta} the vertical rotation angle of the
Cartesian coordinate system.
-\lstset{wide=false}
@@ -835,7 +813,7 @@ Cartesian coordinate system.
\lstset{wide=true}
\subsection{Ticks}
-With the option \verb+IIIDticks+ the axes get ticks and labels. There are several
+With the option \Lkeyword{IIIDticks} the axes get ticks and labels. There are several
options to place the labels in right plane to get an optimal view. The view of the
ticklabels can be changed by redefining the macro
@@ -901,11 +879,11 @@ The following example shows a wrong placing of the labels, the planes should be
\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
+argument \Lkeyword{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.
+With \Lkeyword{coorType}=1 the y--z-axes are orthogonal and the angle between x- and y-axis
+is \Lkeyword{Alpha}. The angle \Lkeyword{Beta} is not valid.
\begin{LTXexample}[width=9.75cm]
\psset{coorType=1,Alpha=135}
@@ -914,9 +892,9 @@ is \texttt{Alpha}. The angle \texttt{Beta} is not valid.
\end{pspicture}
\end{LTXexample}
-With \texttt{coorType=2} the y--z-axes are orthogonal and the angle between x- and y-axis
+With \Lkeyword{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.
+The angle \Lkeyword{Alpha} is only valid for placing the ticks, if any. The angle \Lkeyword{Beta} is not valid.
\begin{LTXexample}[width=9.75cm]
\psset{coorType=2,Alpha=90,
@@ -926,9 +904,9 @@ The angle \texttt{Alpha} is only valid for placing the ticks, if any. The angle
\end{pspicture}
\end{LTXexample}
-With \texttt{coorType=3} the y--z-axes are orthogonal and the angle between x- and y-axis
+With \Lkeyword{coorType}=3 the y--z-axes are orthogonal and the angle between x- and y-axis
is always 45 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.
+The angle \Lkeyword{Alpha} is only valid for placing the ticks, if any. The angle \Lkeyword{Beta} is not valid.
\begin{LTXexample}[width=9.75cm]
\psset{coorType=3,Alpha=90,
@@ -943,8 +921,8 @@ The angle \texttt{Alpha} is only valid for placing the ticks, if any. The angle
\section{Rotation}
The coordinate system can be rotated independent from the given Alpha and Beta values. This makes it possible to place
-the axes in any direction and any order. There are the three options \verb+RotX+, \verb+RotY+, \verb+RotZ+ and an
-additional one for the rotating sequence, which can be any combination of the three letters \verb+xyz+.
+the axes in any direction and any order. There are the three options \Lkeyword{RotX}, \Lkeyword{RotY}, \Lkeyword{RotZ} and an
+additional one for the rotating sequence (Lkeyword{rotSequence}), which can be any combination of the three letters \verb+xyz+.
\begin{LTXexample}[pos=t]
\begin{pspicture}(-6,-3)(6,3)
@@ -989,9 +967,9 @@ additional one for the rotating sequence, which can be any combination of the th
It is sometimes more convenient to rotate the coordinate system by
-specifying a \emph{single} angle of rotation \verb+RotAngle+ (in degrees)
-about a vector whose coordinates are \verb+xRotVec+, \verb+yRotVec+,
-and \verb+zRotVec+ using the \verb+quaternion+ option for \verb+RotSequence+.
+specifying a \emph{single} angle of rotation \Lkeyword{RotAngle} (in degrees)
+about a vector whose coordinates are \Lkeyword{xRotVec}, \Lkeyword{yRotVec},
+and \Lkeyword{zRotVec} using the \Lkeyval{quaternion} option for \Lkeyword{RotSequence}.
\begin{LTXexample}[pos=t]
\begin{pspicture}(-3,-1.8)(3,3)
@@ -1006,25 +984,25 @@ and \verb+zRotVec+ using the \verb+quaternion+ option for \verb+RotSequence+.
\end{LTXexample}
Rotations of the coordinate system may be ``accumulated'' by applying
-successive rotation sequences using the \verb+RotSet+ variable,
-which is set either as a \verb+pst-3dplot+ object's optional argument, or
+successive rotation sequences using the \Lkeyword{RotSet} variable,
+which is set either as a \LPack{pst-3dplot} object's optional argument, or
with a \verb+\psset[pst-3dplot]{RotSet=value}+
-command. The usual \TeX{} scoping rules for the value of \verb+RotSet+
-hold. The following are valid values of \verb+RotSet+:
+command. The usual \TeX{} scoping rules for the value of \Lkeyval{RotSet}
+hold. The following are valid values of \Lkeyword{RotSet}:
\begin{itemize}
-\item \verb+set+: Sets the rotation matrix using the rotation
-parameters. This is the default value for \verb+RotSet+ and is
+\item \Lkeyval{set}: Sets the rotation matrix using the rotation
+parameters. This is the default value for \Lkeyword{RotSet} and is
what is used if \verb+RotSet+ is not set as an option for the
\verb+pst-3dplot+ object, or if not previously
set within the object's scope by a \verb+\psset[pst-3dplot]{RotSet=val}+
command.
-\item \verb+concat+: Concatenates the current rotation matrix with
+\item \Lkeyval{concat}: Concatenates the current rotation matrix with
a the new rotation that is defined by the rotation parameters. This option
-is most useful when multiple \verb+\\pstThreeDCoor+ calls are made,
+is most useful when multiple \Lcs{pstThreeDCoor} calls are made,
with or without actual plotting of the axes,
-to accumulate rotations. A previous value of \verb+RotSet=set+
+to accumulate rotations. A previous value of \Lkeyset{RotSet=set}
must have been made!
-\item \verb+keep+: Keeps the current rotation matrix, ignoring the
+\item \Lkeyval{keep}: Keeps the current rotation matrix, ignoring the
rotation parameters. Mostly used internally to eliminate redundant
calculations.
\end{itemize}
@@ -1075,25 +1053,25 @@ definitions; i.e., \verb+eulerRotation=true+. The default is
\section{Plane Grids}
-\begin{verbatim}
-\pstThreeDPlaneGrid[<options>](xMin,yMin)(xMax,yMax)
-\end{verbatim}
+\begin{BDef}
+\Lcs{pstThreeDPlaneGrid}\OptArgs(xMin,yMin)(xMax,yMax)
+\end{BDef}
There are three additional options
\noindent
\begin{tabularx}{\linewidth}{@{}>{\bfseries\ttfamily}lX@{}}
-planeGrid & can be one of the following values: \verb+xy, xz, yz+. Default is \verb+xy+.\\
+planeGrid & can be one of the following values: \Lkeyval{xy}, \Lkeyval{xz}, \Lkeyval{yz}. Default is \Lkeyval{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=...\}}}
+in the package \nxLPack{pstricks-add}, so it is nessecary to to set this option
+locally or with the family option of \nxLPack{pst-xkey}, eg \Lcs{psset}\texttt{[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.
+be used in any way. \Lkeyword{subticks} defines the number of ticklines for both axes and
+\Lkeyword{xsubticks} and \Lkeyword{ysubticks} for each one.
\iffalse
\newpsstyle{xyPlane}{fillstyle=solid,fillcolor=black!20}
@@ -1225,7 +1203,8 @@ for the placing of the text or other objects.
\end{center}
-This works only well for the \verb|\pstThreeDPut| macro. The default is \verb|c| and for the \verb|pstPlanePut| the left baseline \verb|lB|.
+This works only well for the \Lcs{pstThreeDPut} macro. The default is \Lkeyval{c} and for the
+\Lcs{pstPlanePut} the left baseline \Lkeyval{lB}.
\subsection{\texttt{pstThreeDPut}}
The syntax is similiar to the \verb|\rput| macro:
@@ -1245,10 +1224,12 @@ The syntax is similiar to the \verb|\rput| macro:
\medskip
-Internally the \verb|\pstThreeDPut| macro defines the two dimensional node \verb|temp@pstNode| and then uses the default \verb|\rput| macro from \verb|pstricks|. In fact of the perspective view od the coordinate system, the 3D dot must not be seen as the center of the printed stuff.
+Internally the \Lcs{pstThreeDPut} macro defines the two dimensional node \verb|temp@pstNode|
+and then uses the default \Lcs{rput} macro from \LPack{pstricks}. In fact of the perspective
+view od the coordinate system, the 3D dot must not be seen as the center of the printed stuff.
\subsection[\texttt{pstPlanePut}]{\texttt{pstPlanePut}\protect\footnote{Thanks to Torsten Suhling}}
-The syntax of the \verb|pstPlanePut| is
+The syntax of the \Lcs{pstPlanePut} is
% -------------------------------------------
% ### Aenderung
% - raus: -----------------------------------
@@ -1262,11 +1243,16 @@ The syntax of the \verb|pstPlanePut| is
\pstPlanePut[plane=<2D plane>,planecorr=<Correction of plane's alignment>](x,y,z){Object}
\end{verbatim}
-We have two parameters, \verb|plane| and \verb|planecorr|; both are optional. Let's start with the first parameter, \verb|plane|.
-Possible values for the two dimensional plane are \verb| xy xz yz |. If this parameter is missing then \verb|plane=xy| is set. The first letter marks the positive direction for the width and the second for the height.
+We have two parameters, \Lkeyword{plane} and \Lkeyword{planecorr}; both are optional. Let's start with
+the first parameter, \Lkeyword{plane}.
+Possible values for the two dimensional plane are \verb| xy xz yz |. If this parameter is missing
+then \Lkeyset{plane=xy} is set. The first letter marks the positive direction for the width
+and the second for the height.
% - ende ------------------------------------------------
-The object can be of any type, in most cases it will be some kind of text. The reference point for the object is the left side and vertically centered, often abbreviated as \verb|lB|. The following examples show for all three planes the same textbox.
+The object can be of any type, in most cases it will be some kind of text. The reference point
+for the object is the left side and vertically centered, often abbreviated as \verb|lB|. The
+following examples show for all three planes the same textbox.
\begin{LTXexample}[width=7.25cm]
\begin{pspicture}(-4,-4)(3,4)
@@ -1319,28 +1305,28 @@ still some problems with the xy-plane.
% \end{LTXexample}
% %
% - rein: --------------------------------------------------------------
-The second parameter is \verb|planecorr|. As first the values:
+The second parameter is \Lkeyword{planecorr}. As first the values:
\begin{description}
- \item[\texttt{off}]~Former and default behaviour; nothing will be changed.
+ \item[\Lkeyval{off}]~Former and default behaviour; nothing will be changed.
This value is set, when parameter is missing.
- \item[\texttt{normal}]~Default correction, planes will be rotated to be readable.
- \item[\texttt{xyrot}]~Additionaly correction for $xy$ plane; bottom line of
+ \item[\Lkeyval{normal}]~Default correction, planes will be rotated to be readable.
+ \item[\Lkeyval{xyrot}]~Additionaly correction for $xy$ plane; bottom line of
letters will be set parallel to the $y$-axis.
\end{description}
What kind off correction is ment? In the plots above labels for the $xy$
plane and the $xz$ plane are mirrored. This is not a bug, it's \dots mathematics.
-\verb|\pstPlanePut| puts the labels on the plane of it's value. That means,
-\verb|plane=xy| puts the label on the $xy$ plane, so that the $x$ marks the
+\Lcs{pstPlanePut} puts the labels on the plane of it's value. That means,
+\Lkeyset{plane=xy} puts the label on the $xy$ plane, so that the $x$ marks the
positive direction for the width, the $y$ for the height and the label
{\small{XY plane}} on the top side of plane. If you see the label mirrored,
you just look from the bottom side of plane \dots{}
If you want to keep the labels readable for every view, i.\,e.\ for every
-value of \verb|Alpha| and \verb|Beta|, you should set the value of the
-parameter \verb|planecorr| to \verb|normal|; just like in next example:
+value of \Lkeyword{Alpha} and \Lkeyword{Beta}, you should set the value of the
+parameter \Lkeyword{planecorr} to \Lkeyval{normal}; just like in next example:
\medskip
\begin{LTXexample}[width=6cm]
@@ -1360,11 +1346,11 @@ parameter \verb|planecorr| to \verb|normal|; just like in next example:
\end{LTXexample}
\medskip
-But, why we have a third value \verb|xyrot| of \verb|planecorr|?
+But, why we have a third value \Lkeyval{xyrot} of \Lkeyword{planecorr}?
If there isn't an symmetrical view, -- just like in this example -- it
could be usefull to rotate the label for $xy$-plane, so that body line of
letters is parallel to the $y$ axis. It's done by setting
-\verb|planecorr=xyrot|\,:
+\Lkeyset{planecorr=xyrot}\,:
\medskip
@@ -1392,21 +1378,25 @@ letters is parallel to the $y$ axis. It's done by setting
\section{Nodes}
The syntax is
-\begin{verbatim}
-\pstThreeDNode(x,y,z){<node name>}
-\end{verbatim}
+\begin{BDef}
+\Lcs{pstThreeDNode}\Largr{x,y,z}\Largb{node name}
+\end{BDef}
-This node is internally a two dimensional node, so it cannot be used as a replacement for the parameters \verb|(x,y,z)| of a 3D dot, which is possible with the \verb|\psline| macro from \verb|pst-plot|: \verb|\psline{A}{B}|, where \verb|A| and \verb|B| are two nodes. It is still on the to do list, that it may also be possible with \verb|pst-3dplot|. On the other hand it is no problem to define two 3D nodes \verb|C| and \verb|D| and then drawing a two dimensional line from \verb|C| to \verb|D|.
+This node is internally a two dimensional node, so it cannot be used as a replacement for the
+parameters \verb|(x,y,z)| of a 3D dot, which is possible with the \Lcs{psline} macro from
+\LPack{pst-plot}: \verb|\psline{A}{B}|, where \verb|A| and \verb|B| are two nodes. It is still on
+the to do list, that it may also be possible with \LPack{pst-3dplot}. On the other hand it is no
+problem to define two 3D nodes \verb|C| and \verb|D| and then drawing a two dimensional line
+from \verb|C| to \verb|D|.
\section{Dots}
The syntax for a dot is
-\begin{verbatim}
-\pstThreeDDot[<options>](x,y,z)
-\end{verbatim}
-
-Dots can be drawn with dashed lines for the three coordinates, when the option \verb|drawCoor| is set to \verb|true|. It is also possible to draw an unseen dot
-with the option \verb|dotstyle=none|.\index{dotstyle} In this case the macro draws only the coordinates\index{coordinates}
-when the \verb|drawCoor| option is set to true.
+\begin{BDef}
+\Lcs{pstThreeDDot}\OptArgs\Largr{x,y,z}
+\end{BDef}
+Dots can be drawn with dashed lines for the three coordinates, when the option \Lkeyword{drawCoor} is set to \verb|true|. It is also possible to draw an unseen dot
+with the option \Lkeyset{dotstyle=none}. In this case the macro draws only the \Index{coordinates}
+when the \Lkeyword{drawCoor} option is set to true.
\begin{LTXexample}[width=4.25cm]
\begin{pspicture}(-2,-2)(2,2)
@@ -1432,9 +1422,9 @@ In the following figure the coordinates of the dots are $(a,a,a)$ where a is $-2
\section{Lines}
The syntax for a three dimensional line is just like the same from \verb+\psline+
-{\footnotesize\begin{verbatim}
-\pstThreeDLine[<options>]{<arrow>}(x1,y1,z1)(...)(xn,yn,zn)
-\end{verbatim}}
+\begin{BDef}
+\Lcs{pstThreeDLine}\OptArgs\OptArg{\Larg{<arrow>}}\Largr{x1,y1,z1}\Largr{...}\Largr{xn,yn,zn}
+\end{BDef}
The option and arrow part are both optional and the number of points is only limited
to the memory.
@@ -1561,9 +1551,10 @@ Especially for triangles the option \verb|linejoin| is important. The default va
\section{Squares}
The syntax for a 3D square is:
-\begin{verbatim}
-\pstThreeDSquare(<vector o>)(<vector u>)(<vector v>)
-\end{verbatim}
+\begin{BDef}
+\Lcs{pstThreeDSquare}\OptArgs\Largr{vector o}\Largr{vec u}\Largr{vec v}
+\end{BDef}
+
\begin{LTXexample}[width=5cm]
\begin{pspicture}(-1,-1)(4,3)
@@ -1591,9 +1582,9 @@ Squares are nothing else than a polygon with the starting point $P_o$ given with
\section{Boxes}
A box is a special case of a square and has the syntax
-\begin{verbatim}
-\pstThreeDBox[<options>](<vector o>(<vector u>)(<vector v>)(<vector w>)
-\end{verbatim}
+\begin{BDef}
+\Lcs{pstThreeDBox}\OptArgs\Largr{vector o}\Largr{vec u}\Largr{vec v}\Largr{vec w}
+\end{BDef}
These are the origin vector $\vec{o}$ and three direction vectors $\vec{u}$, $\vec{v}$ and $\vec{w}$, which are for example shown in the following figure.
@@ -1662,9 +1653,9 @@ These are the origin vector $\vec{o}$ and three direction vectors $\vec{u}$, $\v
\end{LTXexample}
-\begin{verbatim}
-\psBox[<options>](<vector o>){width}{depth}{height}
-\end{verbatim}
+\begin{BDef}
+\Lcs{psBox}\OptArgs\Largr{vector o}\Largb{width}\Largb{depth}\Largb{height}
+\end{BDef}
The origin vector $\vec{o}$ determines the left corner of the box.
@@ -1807,9 +1798,9 @@ Ellipses and circles are drawn with the in section~\ref{subsec:parametricplotThr
\subsection{Ellipse}
It is very difficult to see in a 3D coordinate system the difference of an ellipse and a circle. Depending to the view point an ellipse maybe seen as a circle and vice versa. The syntax of the ellipse macro is:
-\begin{verbatim}
-\pstThreeDEllipse[<option>](cx,cy,cz)(ux,uy,uz)(vx,vy,vz)
-\end{verbatim}
+\begin{BDef}
+\Lcs{pstThreeDEllipse}\OptArgs\Largr{cx,cy,cz}\Largr{ux,uy,uz}\Largr{vx,vy,vz}
+\end{BDef}
where \verb|c| is for center and \verb|u| and \verb|v| for the two direction vectors.
The order of these two vectors is important for the drawing if it
@@ -1854,22 +1845,24 @@ shortest way into the second one $\vec{u}$, then you'll get the positive rotati
\subsection{Circle}
The circle is a special case of an ellipse (equ.~\ref{gl.6}) with the vectors
-$\vec{u}$ and $\vec{v}$ which are perpendicular
-to each other: $\left|\vec{u}\right|=\left|\vec{v}\right|=r$.
-with
-$\vec{u}\cdot\vec{v}=\vec{0}$
+$\vec{u}$ and $\vec{v}$ which build the circle plain. They must not be
+othogonal to each other. The circle macro takes the length of vector
+$\vec{u}$ into account for the radius. The orthogonal part of vector $\vec{v}$
+is calculated internally
+\begin{BDef}
+\Lcs{pstThreeDCircle}\OptArgs\Largr{cx,cy,cz}\Largr{ux,uy,uz}\Largr{vx,vy,vz}
+\end{BDef}
-The macro \verb|\pstThreeDCircle| is nothing else than a synonym for \verb|\pstThreeDEllipse|.
-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)
\pstThreeDCoor[xMax=2,yMax=2,zMax=2,linecolor=black]
+ \pstThreeDCircle[linestyle=dashed](1,1,0)(1,0,0)(3,4,0)
+ \pstThreeDCircle[linecolor=blue](1.6,1.6,1.7)(0.8,0.4,0.8)(0.8,-0.8,-0.4)
+ \pstThreeDDot[drawCoor=true,linecolor=blue](1.6,1.6,1.7)
\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)
\pstThreeDDot[drawCoor=true,linecolor=red](1.6,0.6,1.7)
- \pstThreeDCircle[linecolor=blue](1.6,1.6,1.7)(0.8,0.4,0.8)(0.8,-0.8,-0.4)
- \pstThreeDDot[drawCoor=true,linecolor=blue](1.6,1.6,1.7)
\end{pspicture}
\end{LTXexample}
@@ -1984,13 +1977,13 @@ In the following example the circle is drawn with only $20$ plotpoints and the
\end{lstlisting}
% ---------------------------------------------------------------------------------------
-\section{\CMD{pstIIIDCylinder}}
+\section{\Lcs{pstIIIDCylinder}}
% ---------------------------------------------------------------------------------------
The syntax is
-\begin{verbatim}
-\pstIIIDCylinder[Parameter](x,y,z){radius}{height}
-\end{verbatim}
+\begin{BDef}
+\Lcs{pstIIIDCylinder}\OptArgs\Largr{x,y,z}\Largb{radius}\Largb{height}
+\end{BDef}
\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.
@@ -2040,13 +2033,13 @@ missing, then \verb+(0,0,0)+ are taken into account.
% ---------------------------------------------------------------------------------------
-\section{\CMD{psCylinder}}
+\section{\nxLcs{psCylinder}}
% ---------------------------------------------------------------------------------------
The syntax is
-\begin{verbatim}
-\psCylinder[Parameter](x,y,z){radius}{height}
-\end{verbatim}
+\begin{BDef}
+\Lcs{psCylinder}\OptArgs\Largr{x,y,z}\Largb{radius}\Largb{height}
+\end{BDef}
\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.
@@ -2089,20 +2082,20 @@ missing, then \verb+(0,0,0)+ are taken into account.
\clearpage
% ---------------------------------------------------------------------------------------
-\section{\CMD{pstParaboloid}}
+\section{\Lcs{pstParaboloid}}
% ---------------------------------------------------------------------------------------
The syntax is
-\begin{verbatim}
-\pstParaboloid[Parameter]{height}{radius}
-\end{verbatim}
+\begin{BDef}
+\Lcs{pstParaboloid}\OptArgs\Largb{height}\Largb{radius}
+\end{BDef}
\verb+height+ and \verb+radius+ depend to each other, it is the radius of the circle
at the height. By default the paraboloid is placed in the origin of coordinate system, but
-with \verb+\pstThreeDput+ it can be placed anywhere. The possible options are listed in
+with \Lcs{pstThreeDput} it can be placed anywhere. The possible options are listed in
table~\ref{tab:paraboloid}.
The segment color must be set as a cmyk color \verb|SegmentColor={[cmyk]{c,m,y,k}}| in parenthesis,
-otherwise \verb|xcolor| cannot read the values. A white color is given by \verb|SegmentColor={[cmyk]{0,0,0,0}}|.
+otherwise \LPack{xcolor} cannot read the values. A white color is given by \verb|SegmentColor={[cmyk]{0,0,0,0}}|.
\begin{table}[htb]
\centering
@@ -2164,9 +2157,9 @@ otherwise \verb|xcolor| cannot read the values. A white color is given by \verb|
\end{pspicture}
\end{LTXexample}
-\begin{verbatim}
-\pstThreeDSphere[<options>](x,y,z){Radius}
-\end{verbatim}
+\begin{BDef}
+\Lcs{pstThreeDSphere}\OptArgs\Largr{x,y,z}\Largb{Radius}
+\end{BDef}
\verb|(x,y,z)| is the center of the sphere and possible options are listed in table~\ref{tab:sphereOptions}.
The segment color must be set as a cmyk color \verb|SegmentColor={[cmyk]{c,m,y,k}}| in parenthesis,
@@ -2202,9 +2195,9 @@ There are two macros for plotting mathematical functions, which work similiar to
The macro for plotting functions does not have the same syntax as the one from
\verb|pst-plot|\cite{dtk02.1:voss:mathematischen}, but it is used in the same way:
-\begin{verbatim}
-\psplotThreeD[<options>](xMin,xMax)(yMin,yMax){<the function>}
-\end{verbatim}
+\begin{BDef}
+\Lcs{psplotThreeD}\OptArgs\Largr{xMin,xMax}\Largr{yMin,yMax}\Largb{the function}
+\end{BDef}
The function has to be written in \PS{} code and the only valid variable names are \verb|x|
and \verb|y|, f.ex: \verb|{x dup mul y dup mul add sqrt}| for the math expression $\sqrt{x^2 + y^2}$.
@@ -2255,10 +2248,10 @@ for (float y=yMin; y<yMax; y+=dy)
It depends to the inner loop in which direction the curves are drawn. There are four possible
values for the option \verb|drawStyle| :
\begin{itemize}
-\item \verb|xLines| (default) Curves are drawn in x direction
-\item \verb|yLines| Curves are drawn in y direction
-\item \verb|xyLines| Curves are first drawn in x and then in y direction
-\item \verb|yxLines| Curves are first drawn in y and then in x direction
+\item \Lkeyval{xLines} (default) Curves are drawn in x direction
+\item \Lkeyval{yLines} Curves are drawn in y direction
+\item \Lkeyval{xyLines} Curves are first drawn in x and then in y direction
+\item \Lkeyval{yxLines} Curves are first drawn in y and then in x direction
\end{itemize}
In fact of the inner loop it is only possible to get a closed curve in the defined direction.
@@ -2398,12 +2391,12 @@ figure~\ref{fig:3dfunc}, only with the option \verb|hiddenLine=true|.
\begin{pspicture}(-6,-4)(6,5)
\psset{Alpha=45,Beta=15}
\pstThreeDCoor[xMin=-1,xMax=5,yMin=-1,yMax=5,zMin=-1,zMax=5]
- \psplotThreeD[%
- plotstyle=curve,%
- drawStyle=yLines,%
- fillstyle=gradient,%
- yPlotpoints=50,xPlotpoints=50,%
- linewidth=0.2pt](-4,4)(-4,4){%
+ \psplotThreeD[
+ plotstyle=curve,
+ drawStyle=yLines,
+ fillstyle=gradient,
+ yPlotpoints=50,xPlotpoints=50,
+ linewidth=0.2pt](-4,4)(-4,4){
x 3 exp x y 4 exp mul add x 5 div sub 10 mul
2.729 x dup mul y dup mul add neg exp mul
2.729 x 1.225 sub dup mul y dup mul add neg exp add}
@@ -2416,9 +2409,9 @@ figure~\ref{fig:3dfunc}, only with the option \verb|hiddenLine=true|.
\subsection{Parametric Plots}\label{subsec:parametricplotThreeD}
Parametric plots are only possible for drawing curves or areas. The syntax for this plot macro is:
-\begin{verbatim}
-\parametricplotThreeD(t1,t2)(u1,u2){<three parametric functions x y z}
-\end{verbatim}
+\begin{BDef}
+\Lcs{parametricplotThreeD}\OptArgs\Largr{t1,t2}\Largr{u1,u2}\Largb{three parametric functions x y z}
+\end{BDef}
The only possible variables are \verb|t| and \verb|u| with \verb|t1,t2| and \verb|u1,u2| as the
range for the parameters. The order for the functions is not important and \verb|u| may be
@@ -2440,27 +2433,41 @@ To draw a spiral we have the parametric functions:
\end{align}
In the example the $t$ value is divided by $600$ for the \verb|z| coordinate, because we have the
-values for $t$ in degrees, here with a range of $0\mbox{°}\ldots 2160\mbox{°}$. Drawing a curve in
+values for $t$ in degrees, here with a range of $0\mbox{\textdegree}\ldots 2160\mbox{\textdegree}$. Drawing a curve in
a three dimensional coordinate system does only require one parameter, which has to be by default
\verb|t|. In this case we do not need all parameters, so that one can write
-\begin{verbatim}
-\parametricplotThreeD(t1,t2){<three parametric functions x y z}
-\end{verbatim}
+\begin{BDef}
+\Lcs{parametricplotThreeD}\OptArgs\Largr{t1,t2}\Largb{three parametric functions x y z}
+\end{BDef}
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)
\pstThreeDCoor[zMax=5]
- \parametricplotThreeD[xPlotpoints=200,linecolor=blue,%
+ \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}
+ 2.5 t cos mul 2.5 t sin mul t 600 div}%degrees
+\end{pspicture}
+\end{LTXexample}
+
+And the same with the algebraic option:
+
+\begin{LTXexample}[width=6.75cm]
+\begin{pspicture}(-3.25,-2.25)(3.25,5.25)
+ \pstThreeDCoor[zMax=5]
+ \parametricplotThreeD[xPlotpoints=200,
+ linecolor=blue,%
+ linewidth=1.5pt,plotstyle=curve,
+ algebraic](0,18.86){% radiant
+ 2.5*cos(t) | 2.5*sin(t) | t/5.24}
\end{pspicture}
\end{LTXexample}
-Instead of using the \verb|\pstThreeDSphere| macro (see section \ref{sec:spheres}) it is also
+Instead of using the \Lcs{pstThreeDSphere} macro (see section \ref{sec:spheres}) it is also
possible to use parametric functions for a sphere. The macro plots continous lines only for
the \verb|t| parameter, so a sphere plotted with the longitudes need the parameter equations as
\begin{align}
@@ -2480,7 +2487,8 @@ z = \sin u
\end{array}
\end{align}
-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}).
+and at last both together is also not a problem when having these parametric functions together in one
+\Lenv{pspicture} environment (see figure \ref{fig:paraSpheres}).
\begin{lstlisting}
\begin{pspicture}(-1,-1)(1,1)
@@ -2555,11 +2563,11 @@ There are the same conventions for data files which holds 3D coordinates, than f
\end{verbatim}
There are the same three plot functions:
-\begin{verbatim}
-\fileplotThreeD[<options>]{<datafile>}
-\dataplotThreeD[<options>]{<data object>}
-\listplotThreeD[<options>]{<data object>}
-\end{verbatim}
+\begin{BDef}
+\Lcs{fileplotThreeD}\OptArgs\Largb{<datafile>}\\
+\Lcs{dataplotThreeD}\OptArgs\Largb{data object}\\
+\Lcs{listplotThreeD}\OptArgs\Largb{data object}
+\end{BDef}
The in the following examples used data file has 446 entries like
@@ -2567,18 +2575,19 @@ The in the following examples used data file has 446 entries like
6.26093349..., 2.55876582..., 8.131984...
\end{verbatim}
-This may take some time on slow machines when using the \CMD{listplotThreeD} macro.
-The possible options for the lines are the ones from table \ref{tab:lineOptions}.
+This may take some time on slow machines when using the \Lcs{listplotThreeD} macro.
+The possible options for the lines are the ones from table~\ref{tab:lineOptions}.
\subsection{\textbackslash\texttt{fileplotThreeD}}
The syntax is very easy
-{\footnotesize\begin{verbatim}
-\fileplotThreeD[<options>]{<datafile>}
-\end{verbatim}}
+\begin{BDef}
+\Lcs{fileplotThreeD}\OptArgs\Largb{datafile}
+\end{BDef}
If the data file is not in the same directory than the document, insert the file name
-with the full path. Figure \ref{fig:fileplot} shows a file plot with the option \texttt{linestyle=line}.
+with the full path. Figure~\ref{fig:fileplot} shows a file plot with the
+option \Lkeyword{linestyle}=\Lkeyval{line}.
\begin{figure}[!htbp]
@@ -2589,24 +2598,24 @@ with the full path. Figure \ref{fig:fileplot} shows a file plot with the option
\fileplotThreeD[plotstyle=line]{data3D.Roessler}
\end{pspicture}%
\end{LTXexample}%
-\caption{Demonstration of \CMD{fileplotThreeD} with \texttt{Alpha=30} and \texttt{Beta=15}}\label{fig:fileplot}
+\caption{Demonstration of \Lcs{fileplotThreeD} with \texttt{Alpha=30} and \texttt{Beta=15}}\label{fig:fileplot}
\end{figure}
-\subsection{\CMD{dataplotThreeD}}
+\subsection{\Lcs{dataplotThreeD}}
The syntax is
-\begin{verbatim}
-\dataplotThreeD[<options>]{<data object>}
-\end{verbatim}
+\begin{BDef}
+\Lcs{dataplotThreeD}\OptArgs\Largb{<data object>}
+\end{BDef}
-In difference to the macro \CMD{fileplotThreeD} the \CMD{dataplotThreeD} cannot plot any external data
-without reading this with the macro \CMD{readdata} which reads external data and save it in a macro,
-f.ex.: \CMD{dataThreeD}.\cite{dtk02.2:jackson.voss:plot-funktionen}
+In difference to the macro \Lcs{fileplotThreeD} the \Lcs{dataplotThreeD} cannot plot any external data
+without reading this with the macro \Lcs{readdata} which reads external data and save it in a macro,
+f.ex.: \Lcs{dataThreeD}.\cite{dtk02.2:jackson.voss:plot-funktionen}
-\begin{verbatim}
-\readdata{<data object>}{<datafile>}
-\end{verbatim}
+\begin{BDef}
+\Lcs{readdata}\Largb{data object}\Largb{datafile}
+\end{BDef}
\readdata{\dataThreeD}{data3D.Roessler}
\begin{figure}[htbp]
@@ -2622,13 +2631,16 @@ f.ex.: \CMD{dataThreeD}.\cite{dtk02.2:jackson.voss:plot-funktionen}
\end{figure}
-\subsection{\CMD{listplotThreeD}}
+\subsection{\Lcs{listplotThreeD}}
The syntax is
-\begin{verbatim}
-\listplotThreeD[<options>]{<data object>}
-\end{verbatim}
+\begin{BDef}
+\Lcs{listplotThreeD}\OptArgs\Largb{data object}
+\end{BDef}
-\CMD{listplotThreeD} ist similiar to \CMD{dataplotThreeD}, so it cannot plot any external data in a direct way, too. But \CMD{readdata} reads external data and saves it in a macro, f.ex.: \CMD{dataThreeD}.\cite{dtk02.2:jackson.voss:plot-funktionen} \CMD{listplot} can handle some additional PostScript code, which can be appended to the data object, f.ex.:
+\Lcs{listplotThreeD} ist similiar to \Lcs{dataplotThreeD}, so it cannot plot any external data in a
+direct way, too. But \Lcs{readdata} reads external data and saves
+it in a macro, f.ex.: \Lcs{dataThreeD}.\cite{dtk02.2:jackson.voss:plot-funktionen} \Lcs{listplot}
+can handle some additional PostScript code, which can be appended to the data object, f.ex.:
\readdata{\data}{data3D.Roessler}
\newcommand{\dataThreeDDraft}{%
@@ -2662,23 +2674,27 @@ The syntax is
\listplotThreeD[plotstyle=line]{\dataThreeDDraft}
\end{pspicture}%
\end{LTXexample}%
-\caption{Demonstration of \texttt{\textbackslash listplotThreeD} with a view from above (\texttt{Alpha=0} and \texttt{Beta=90}) and some additional PostScript code}\label{fig:listplot}
+\caption{Demonstration of \texttt{\textbackslash listplotThreeD} with a view from above
+(\texttt{Alpha=0} and \texttt{Beta=90}) and some additional PostScript
+code}\label{fig:listplot}
\end{figure}
-Figure \ref{fig:listplot} shows what happens with this code. For another example see \cite{dtk02.1:voss:mathematischen}, where the macro \texttt{ScalePoints} is modified. This macro is in \texttt{pst-3dplot} called \texttt{ScalePointsThreeD}.
+Figure \ref{fig:listplot} shows what happens with this code. For another
+example see \cite{dtk02.1:voss:mathematischen}, where the macro \Lcs{ScalePoints}
+is modified. This macro is in \LPack{pst-3dplot} called \Lcs{ScalePointsThreeD}.
\section{Utility macros}
\subsection{Rotation of three dimensional coordinates}
-With the three optional arguments \verb+RotX RotY RotZ+ one can rotate a three dimensional
+With the three optional arguments \Lkeyword{RotX}, \Lkeyword{RotY} and \Lkeyword{RotZ} one can rotate a three dimensional
point. This makes only sense when one wants to save the coordinates. In general it is more
-powerful to use directly the optional parameters \verb+RotX+, \verb+RotY+, \verb+RotZ+ for
+powerful to use directly the optional parameters \Lkeyword{RotX}, \Lkeyword{RotY}, \Lkeyword{RotZ} for
the plot macros. However, the macro syntax is
%
-\begin{verbatim}
-\pstRotPOintIIID[RotX=...,RotY=...,RotZ=...](<x,y,z>)<\xVal><\yVal><\zVal>
-\end{verbatim}
+\begin{BDef}
+\Lcs{pstRotPOintIIID}\OptArg{RotX=...,RotY=...,RotZ=...}\Largr{x,y,z}\nxLcs{xVal}\nxLcs{yVal}\nxLcs{zVal}
+\end{BDef}
the \verb+\xVal \yVal \zVal+ hold the new rotated coordinates and must be defined by the user like \verb+\def\xVal{}+,
where the name of the macro is not important.
@@ -2735,32 +2751,32 @@ The rotation angles are all predefined to $0$ degrees.
\subsection{Transformation of coordinates}
-To run the macros with more than 9 parameters \verb|pst-3dplot| uses
+To run the macros with more than 9 parameters \LPack{pst-3dplot} uses
the syntax \verb|(#1)| for a collection of three coordinates \verb|(#1,#2,#3)|.
To handle these triple in PostScript the following macro is used, which converts
the parameter \verb|#1| into a sequence of the three coordinates, dived by a space.
The syntax is:
%
-\begin{verbatim}
-\getThreeDCoor(<vector>)<\macro>
-\end{verbatim}
+\begin{BDef}
+\Lcs{getThreeDCoor}(<vector>)<\nxLcs{macro}>
+\end{BDef}
\verb|\macro| holds the sequence of the three coordinates \verb|x y z|, divided by a space.
\subsection{Adding two vectors}
The syntax is
-\begin{verbatim}
-\pstaddThreeDVec(<vector A>)(<vector B>)\tempa\tempb\tempc
-\end{verbatim}
+\begin{BDef}
+\Lcs{pstaddThreeDVec}(<vector A>)(<vector B>)\verb+\tempa\tempb\tempc+
+\end{BDef}
\verb|\tempa\tempb\tempc| must be user or system defined macros, which holds the three
coordinates of the vector $\vec{C}=\vec{A}+\vec{B}$.
\subsection{Substract two vectors}
The syntax is
-\begin{verbatim}
-\pstsubThreeDVec(<vector A>)(<vector B>)\tempa\tempb\tempc
-\end{verbatim}
+\begin{BDef}
+\Lcs{pstsubThreeDVec}(<vector A>)(<vector B>)\verb+\tempa\tempb\tempc+
+\end{BDef}
\verb|\tempa\tempb\tempc| must be user or system defined macros, which holds the three
coordinates of the vector $\vec{C}=\vec{A}-\vec{B}$.
@@ -2769,17 +2785,20 @@ coordinates of the vector $\vec{C}=\vec{A}-\vec{B}$.
\section{PDF output}
-\verb|pst-3dplot| is based on the popular \verb|pstricks| package and writes pure \PS code\cite{PostScript}, so it is not possible to run \TeX{} files with pdf\LaTeX{} when there are pstricks macros in the document. If you still need a PDF output use one of the following possibilities:
+\LPack{pst-3dplot} is based on the popular \verb|pstricks| package and writes pure
+\PS code\cite{PostScript}, so it is not possible to run \TeX{} files with
+pdf\LaTeX{} when there are pstricks macros in the document. If you still need a
+PDF output use one of the following possibilities:
\begin{itemize}
-\item package \verb|pdftricks.sty|\cite{pdftricks}
+\item package \LPack{pdftricks}\cite{pdftricks}
\item the for Linux free available program VTeX/Lnx\footnote{\url{http://www.micropress-inc.com/linux/}}
\item build the PDF with \verb|ps2pdf| (\verb|dvi|$\rightarrow$\verb|ps|$\rightarrow$\verb|pdf|)
-\item use the \verb|ps4pdf| package.\footnote{\url{http://www.perce.de/LaTeX/ps4pdf/}}
+\item use the \LPack{pst-pdf} package.\footnote{\url{http://www.perce.de/LaTeX/ps4pdf/}}
\end{itemize}
-If you need package \verb|graphicx.sty| load it before any \verb|pstricks| package.
+If you need package \LPack{graphicx} load it before any \verb|pstricks| package.
You do not need to load
-\verb|pstricks.sty|, it will be done by \verb|pst-3dplot| by default.
+\verb|pstricks.sty|, it will be done by \LPack{pst-3dplot} by default.
\section{FAQ}
\begin{itemize}
@@ -2789,25 +2808,23 @@ Be sure that you view your output with a dvi viewer which can show PostScript co
kdvi but not xdvi. It is better to run \verb|dvips| and then view the ps-file with \verb|gv|.
\item The three axes have a wrong intersection point.
-Be sure that you have the ''newest`` \verb|pst-node.tex| file
+Be sure that you have the ''newest`` \LPack{pst-node} package
\begin{verbatim}
\def\fileversion{97 patch 11}
\def\filedate{2000/11/09}
\end{verbatim}
-and the ''newest`` \verb|pst-plot.tex|
+and the ''newest`` \LPack{pst-plot}
\begin{verbatim}
\def\fileversion{97 patch 2}
\def\filedate{1999/12/12}
\end{verbatim}
-\item Using \verb+amsmath+ and \verb+\hat+ or other accents as label for the axes gives an
-error. In this case save prevent expanding with e.g.: \verb+\psset{nameX=$\noexpand\hat{x}$}+.
+\item Using \LPack{amsmath} and \Lcs{hat} or other accents as label for the axes gives an
+error. In this case save prevent expanding with e.g.: \verb+\psset{nameX=$\noexpand\hat{x}$}+. %$
\end{itemize}
-\section{Credits}
-Bruce Burlton | Christophe Jorssen | Chris Kuklewicz | Thorsten Suhling
\bgroup
\nocite{*}
@@ -2816,5 +2833,6 @@ Bruce Burlton | Christophe Jorssen | Chris Kuklewicz | Thorsten Suhling
\bibliography{pst-3dplot-doc}
\egroup
+\printindex
\end{document}
diff --git a/Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro b/Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro
index 6cd943f344c..4c432b54f13 100644
--- a/Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro
+++ b/Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro
@@ -1,4 +1,4 @@
-%% $Id: pst-3dplot.pro 9 2008-01-03 20:22:50Z herbert $
+%% $Id: pst-3dplot.pro 50 2008-11-12 13:44:21Z herbert $
%%
%% This is file `pst-3dplot.pro',
%%
@@ -92,6 +92,17 @@ tx@3DPlotDict begin
} repeat
} def
%
+% the angle in the parameter equation for an ellipse is not proportional to the real angle!
+% phi=atan(b*tan(angle)/a)+floor(angle/180+0.5)*180
+%
+/getPhi { % on stack: vecA vecB angle
+ 3 dict begin
+ /angle exch def /vecB exch def /vecA exch def
+ angle cvi 90 mod 0 eq { angle } { vecA angle tan mul vecB atan
+ angle 180 div .5 add floor 180 mul add } ifelse
+ end
+} def
+%
/RotSet (set ) def
%
/eulerRotation false def
@@ -190,26 +201,20 @@ tx@3DPlotDict begin
} def
%
/SetMxyz {
-
1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 3 3 11 array astore /MnewTOold ED
RotSequence cvx exec % Now create a new MnewTOold using xyz, etc.
-
} def
%
/ConcatMQuaternion {
-
MnewTOold % Push onto stack
SetMQuaternion % Uses [xyz]RotVec and RotAngle to make MnewToOld
MnewTOold matmul /MnewTOold ED
-
} def
%
/ConcatMxyz {
-
MnewTOold % Push onto stack
SetMxyz % Uses RotX, etc. to set MnewTOold
MnewTOold matmul /MnewTOold ED
-
} def
%
/RotatePoint{
@@ -798,6 +803,13 @@ tx@3DPlotDict begin
end
} def
%
+% u -> e_u with |e_u|=1
+/vector-unit { 1 dict begin
+ dup vector-length 1 exch div
+ vector-scale
+ end
+} def
+%
% u v -> u+v
/vector-add { 1 dict begin
/v exch def
@@ -812,7 +824,7 @@ tx@3DPlotDict begin
]
end
} def
-
+%
% u v -> u-v
/vector-sub { 1 dict begin
/v exch def
@@ -837,10 +849,33 @@ end } def
]
end } def
%
-
+%
+% [u] [v] -> [u x v]
+/vector-prod { %% x1 y1 z1 x2 y2 z2
+6 dict begin
+ aload pop
+ /zp exch def /yp exch def /xp exch def
+ aload pop
+ /z exch def /y exch def /x exch def
+ [ y zp mul z yp mul sub
+ z xp mul x zp mul sub
+ x yp mul y xp mul sub ]
+end
+} def
+%
+% [u] [v] -> u.v
+/vector-mul { %% x1 y1 z1 x2 y2 z2
+6 dict begin
+ aload pop
+ /zp exch def /yp exch def /xp exch def
+ aload pop
+ /z exch def /y exch def /x exch def
+ x xp mul y yp mul add z zp mul add
+end
+} def
+%
% [x y z ... ] -> r
% watch out for overflow
-
/vector-length { 1 dict begin
dup
% find maximum entry
@@ -853,7 +888,6 @@ dup
pop
} ifelse
} forall
-
max 0 ne {
0 exch
{ % 0 v[i]
diff --git a/Master/texmf-dist/source/generic/pst-3dplot/Makefile b/Master/texmf-dist/source/generic/pst-3dplot/Makefile
index 294bb21f319..707179c5fd7 100644
--- a/Master/texmf-dist/source/generic/pst-3dplot/Makefile
+++ b/Master/texmf-dist/source/generic/pst-3dplot/Makefile
@@ -7,6 +7,8 @@ PACKAGE = pst-3dplot
MAIN = $(PACKAGE)-doc
+TDS = ~/PSTricks/PSTricks-TDS
+
LATEX = latex
ARCHNAME = $(MAIN)-$(shell date +%y%m%d)
@@ -37,7 +39,7 @@ $(MAIN).dvi : $(MAIN).tex
clean :
$(RM) $(addprefix $(MAIN), .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out .blg .Roessler .bbl )
- $(RM) $(addprefix $(MAIN), .dvi .ps)
+ $(RM) $(addprefix $(MAIN), .dvi .ps .xcp)
veryclean : clean
$(RM) $(addprefix $(MAIN), .pdf .bbl .blg)
@@ -45,4 +47,24 @@ veryclean : clean
arch :
zip $(ARCHNAME).zip $(ARCHFILES)
+tds:
+ cp -u Changes $(TDS)/doc/generic/$(PACKAGE)/
+ cp -u README $(TDS)/doc/generic/$(PACKAGE)/
+ cp -u $(MAIN).pdf $(TDS)/doc/generic/$(PACKAGE)/
+#
+ cp -u Changes $(TDS)/tex/latex/$(PACKAGE)/
+ cp -u $(PACKAGE).sty $(TDS)/tex/latex/$(PACKAGE)/
+#
+ cp -u Changes $(TDS)/tex/generic/$(PACKAGE)/
+ cp -u $(PACKAGE).tex $(TDS)/tex/generic/$(PACKAGE)/
+#
+ cp -u Changes $(TDS)/dvips/$(PACKAGE)/
+ cp -u $(PACKAGE).pro $(TDS)/dvips/$(PACKAGE)/
+#
+ cp -u Changes $(TDS)/source/$(PACKAGE)/
+ cp -u $(MAIN).tex $(TDS)/source/$(PACKAGE)/
+ cp -u $(MAIN).bib $(TDS)/source/$(PACKAGE)/
+ cp -u Makefile $(TDS)/source/$(PACKAGE)/
+
+
# 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 dd95147cee3..f5616fdd09c 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 9 2008-01-03 20:22:50Z herbert $
+%% $Id: pst-3dplot.tex 50 2008-11-12 13:44:21Z herbert $
%%
%% This is file `pst-3dplot.tex',
%%
@@ -25,8 +25,8 @@
\ifx\PSTricksAddLoaded\endinput\else\input pstricks-add.tex\fi% loads node and plot
\ifx\PSTMultidoLoaded\endinput\else\input multido.tex\fi
%
-\def\fileversion{1.80}
-\def\filedate{2008/02/08}
+\def\fileversion{1.82}
+\def\filedate{2008/11/12}
\message{`PST-3dplot' v\fileversion, \filedate\space (HV,DL)}
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
@@ -177,6 +177,7 @@
\edef\psk@ThreeDplot@invisibleLineStyle{#1}}
%
\define@boolkey[psset]{pst-3dplot}[Pst@]{IIIDticks}[true]{}
+\define@boolkey[psset]{pst-3dplot}[Pst@]{IIIDlabels}[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}}
@@ -194,7 +195,7 @@
%
% ### begin Torsten Suhling
\define@key[psset]{pst-3dplot}{planecorr}{\def\psk@ThreeDplot@planecorr{#1}}% make plane tags readable
-\def\ThreeDplot@planecorrOff{off} % default
+\def\ThreeDplot@planecorrNone{none} % default
\def\ThreeDplot@planecorrNormal{normal} % make planes readable
\def\ThreeDplot@planecorrXYrot{xyrot} % and put tag for xy-plane
% % parallel to the y-axis
@@ -260,9 +261,9 @@
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,
- Dz=1,IIIDticks=false,IIIDxTicksPlane=xy,IIIDyTicksPlane=yz,IIIDzTicksPlane=yz,
+ Dz=1,IIIDticks=false,IIIDlabels=false,IIIDxTicksPlane=xy,IIIDyTicksPlane=yz,IIIDzTicksPlane=yz,
IIIDticksize=0.1,IIIDxticksep=-0.4,IIIDyticksep=-0.2,IIIDzticksep=0.2,
- planecorr=off,
+ planecorr=none,
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
@@ -271,7 +272,7 @@
}
\setIIIDplotDefaults
%
-\def\variablesIIID{
+\def\IIIDplot@variables{
/RotX \psk@ThreeD@RotX\space def
/RotY \psk@ThreeD@RotY\space def
/RotZ \psk@ThreeD@RotZ\space def
@@ -329,6 +330,7 @@
\let#6\pst@getValueY%
\let#7\pst@getValueZ%
}
+%
\def\pst@calcThreeDVec(#1,#2,#3)(#4,#5,#6){{% #1+#4; #2+#5; #3+#6
\pst@dima=#1 pt%
\pst@dimb=#2 pt%
@@ -385,17 +387,18 @@
\pstPlanePut[plane=\psk@IIIDxTicksPlane]%
(\rB,\psk@IIIDxticksep,0){\psxyzlabel{\rA}}%
}%
- \pst@dimx=\psk@ThreeDplot@xMin\p@%
- \pst@dima=\psk@ThreeDplot@xThreeDunit\p@%
- \divide\pst@dimx by \pst@dima%
- \ifdim\psk@ThreeDplot@xMin pt<\p@ \pst@cntx=-\number\pst@dimx%
- \else\pst@cntx=\number\pst@dimx\fi%
- \multido{\rA=-\psk@Dx+-\psk@Dx,%
- \rB=-\psk@ThreeDplot@xThreeDunit+-\psk@ThreeDplot@xThreeDunit}{\pst@cntx}{%
- \pstThreeDLine[arrows=-](\rB,-\psk@IIIDticksize,0)(\rB,\psk@IIIDticksize,0)%
- \pstPlanePut[plane=\psk@IIIDxTicksPlane](\rB,\psk@IIIDxticksep,0){\psxyzlabel{\rA}}%
- }%
-% \fi%
+ \pst@dimx=\psk@ThreeDplot@xMin\p@%
+ \pst@dima=\psk@ThreeDplot@xThreeDunit\p@%
+ \divide\pst@dimx by \pst@dima%
+ \ifdim\psk@ThreeDplot@xMin pt<\p@ \pst@cntx=-\number\pst@dimx%
+ \else\pst@cntx=\number\pst@dimx\fi%
+ \multido{\rA=-\psk@Dx+-\psk@Dx,%
+ \rB=-\psk@ThreeDplot@xThreeDunit+-\psk@ThreeDplot@xThreeDunit}{\pst@cntx}{%
+ \pstThreeDLine[arrows=-](\rB,-\psk@IIIDticksize,0)(\rB,\psk@IIIDticksize,0)%
+ \ifPst@IIIDlabels%
+ \pstPlanePut[plane=\psk@IIIDxTicksPlane](\rB,\psk@IIIDxticksep,0){\psxyzlabel{\rA}}%
+ \fi%
+ }%
% \ifnum\psk@ThreeDplot@Alpha=0\else
\pst@dimy=\psk@ThreeDplot@yMax\p@%
\pst@dima=\psk@ThreeDplot@yThreeDunit\p@%
@@ -404,7 +407,9 @@
\pst@cnty=\number\pst@dimy\advance\pst@cnty by -1%
\mmultido{\rA=0.0+\psk@Dy,\rB=0.0+\psk@ThreeDplot@yThreeDunit}{\pst@cnty}{%
\pstThreeDLine[arrows=-](-\psk@IIIDticksize,\rB,0)(\psk@IIIDticksize,\rB,0)%
- \pstPlanePut[plane=\psk@IIIDyTicksPlane](\psk@IIIDyticksep,\rB,0){\psxyzlabel{\rA}}%
+ \ifPst@IIIDlabels%
+ \pstPlanePut[plane=\psk@IIIDyTicksPlane](\psk@IIIDyticksep,\rB,0){\psxyzlabel{\rA}}%
+ \fi%
}%
\pst@dimy=\psk@ThreeDplot@yMin\p@%
\pst@dima=\psk@ThreeDplot@yThreeDunit\p@%
@@ -415,7 +420,9 @@
\multido{\rA=-\psk@Dy+-\psk@Dy,%
\rB=-\psk@ThreeDplot@yThreeDunit+-\psk@ThreeDplot@yThreeDunit}{\pst@cnty}{%
\pstThreeDLine[arrows=-](-\psk@IIIDticksize,\rB,0)(\psk@IIIDticksize,\rB,0)%
- \pstPlanePut[plane=\psk@IIIDyTicksPlane](\psk@IIIDyticksep,\rB,0){\psxyzlabel{\rA}}%
+ \ifPst@IIIDlabels%
+ \pstPlanePut[plane=\psk@IIIDyTicksPlane](\psk@IIIDyticksep,\rB,0){\psxyzlabel{\rA}}%
+ \fi
}%
% \fi%
\pst@dimz=\psk@ThreeDplot@zMax\p@%
@@ -424,7 +431,9 @@
\pst@cntz=\number\pst@dimz\advance\pst@cntz by -1%
\mmultido{\rA=0.0+\psk@Dz,\rB=0.0+\psk@ThreeDplot@zThreeDunit}{\pst@cntz}{%
\pstThreeDLine[arrows=-](0,-\psk@IIIDticksize,\rB)(0,\psk@IIIDticksize,\rB)%
- \pstPlanePut[plane=\psk@IIIDzTicksPlane](0,\psk@IIIDzticksep,\rB){\psxyzlabel{\rA}}%
+ \ifPst@IIIDlabels%
+ \pstPlanePut[plane=\psk@IIIDzTicksPlane](0,\psk@IIIDzticksep,\rB){\psxyzlabel{\rA}}%
+ \fi%
}%
\pst@dimz=\psk@ThreeDplot@zMin\p@%
\pst@dima=\psk@ThreeDplot@zThreeDunit\p@%
@@ -436,7 +445,9 @@
\multido{\rA=-\psk@Dz+-\psk@Dz,%
\rB=-\psk@ThreeDplot@zThreeDunit+-\psk@ThreeDplot@zThreeDunit}{\pst@cntz}{%
\pstThreeDLine[arrows=-](0,-\psk@IIIDticksize,\rB)(0,\psk@IIIDticksize,\rB)%
- \pstPlanePut[plane=\psk@IIIDzTicksPlane](0,\psk@IIIDzticksep,\rB){\psxyzlabel{\rA}}%
+ \ifPst@IIIDlabels%
+ \pstPlanePut[plane=\psk@IIIDzTicksPlane](0,\psk@IIIDzticksep,\rB){\psxyzlabel{\rA}}%
+ \fi%
}%
\fi\fi%
\endgroup%
@@ -496,6 +507,31 @@
\fi%
}\ignorespaces}
%
+% transform the 3d coordinates of the point (#1,#2,#3)
+% into a 2d and moveto
+%
+\def\pstThreeDmoveto{\pst@object{pstThreeDmoveto}}
+\def\pstThreeDmoveto@i(#1,#2,#3){%
+ \pst@killglue
+ \begingroup
+ \addto@pscode{
+ \pst@3ddict
+ \IIIDplot@variables
+ #1 #2 #3
+ \ifPst@SphericalCoor
+ ConvertToCartesian
+ \else
+ \psk@ThreeDplot@zThreeDunit\space mul /z ED
+ \psk@ThreeDplot@yThreeDunit\space mul /y ED
+ \psk@ThreeDplot@xThreeDunit\space mul /x ED
+ \fi
+ ConvertTo2D x2D y2D end moveto }%
+ \use@pscode
+ \def\pst@par{}%
+ \endgroup
+\ignorespaces}
+%
+%
% put anything at (#2,#3,#4)
%
\def\pstThreeDPut{\@ifnextchar[{\pst@ThreeDPut}{\pst@ThreeDPut[]}}
@@ -534,7 +570,7 @@
\def\lineIIID@ii{%
\addto@pscode{%
\pst@3ddict
- \variablesIIID
+ \IIIDplot@variables
\psk@ThreeDplot@linejoin setlinejoin
/dxUnit \psk@ThreeDplot@xThreeDunit\space def
/dyUnit \psk@ThreeDplot@yThreeDunit\space def
@@ -565,7 +601,7 @@
\psset{style=showCoorStyle}
\addto@pscode{
\pst@3ddict
- \variablesIIID
+ \IIIDplot@variables
\psk@ThreeDplot@linejoin setlinejoin
\pst@tempThreeDDot
\ifPst@SphericalCoor
@@ -619,7 +655,7 @@
\def\pst@tempThreeDNode{#1 #2 #3 }%
\pnode(!
\pst@3ddict
- \variablesIIID
+ \IIIDplot@variables
\pst@tempThreeDNode
\ifPst@SphericalCoor
ConvertToCartesian
@@ -648,7 +684,7 @@
\getThreeDCoor{#5}\pst@tempE
\pnode(!%
\pst@3ddict
- \variablesIIID
+ \IIIDplot@variables
% #1 #2 % a + r vec(m)
% #3 #4 #5 % b + s vec(u) + s vec(v)
[\pst@tempA] [\pst@tempC] % x11 x21 x31 x12 x22 x32
@@ -677,7 +713,7 @@
\def\pst@UThreeDPut[#1](#2,#3,#4)#5{{%
\uput[#1](!%
\pst@3ddict
- \variablesIIID
+ \IIIDplot@variables
\ifPst@SphericalCoor
#2\space #3\space #4\space
ConvertToCartesian
@@ -710,7 +746,7 @@
\begin@ClosedObj
\addto@pscode{%
\pst@3ddict
- \variablesIIID
+ \IIIDplot@variables
\psk@ThreeDplot@linejoin setlinejoin
/P1 { \pst@tempAA } def % x y z or Radius longitude lattitude
/P2 { \pst@tempBB } def %
@@ -772,9 +808,9 @@
\getThreeDCoor{#2}\pst@tempBB
\getThreeDCoor{#3}\pst@tempCC
\begin@ClosedObj
- \addto@pscode{%
+ \addto@pscode{
\pst@3ddict
- \variablesIIID
+ \IIIDplot@variables
\psk@ThreeDplot@linejoin setlinejoin
/P1 { \pst@tempAA } def % x y z or Radius longitude lattitude
/P2 { \pst@tempBB } def %
@@ -818,7 +854,7 @@
\begingroup%
\psset{linestyle=\psk@ThreeDplot@invisibleLineStyle}%
\psset{#1}%
-% \pstVerb{ \pst@3ddict \variablesIIID\space end }%
+% \pstVerb{ \pst@3ddict \IIIDplot@variables\space end }%
\iftrue
\pstThreeDSquare[#1](#2)(#4)(#5) % lower square
\pstThreeDSquare(#2)(#3)(#4)% back square
@@ -871,7 +907,7 @@
\getThreeDCoor{#2}\pst@tempA% a
\getThreeDCoor{#3}\pst@tempB% b
\addto@pscode{%
- \pst@3ddict \variablesIIID end
+ \pst@3ddict \IIIDplot@variables end
\psk@ThreeDplot@linejoin setlinejoin
\ifPst@SphericalCoor
\pst@tempC\space \tx@ConvertToCartesian
@@ -944,9 +980,67 @@
}%
\@nameuse{endplot@\psplotstyle}}
%
-\def\pstThreeDCircle{\pstThreeDEllipse}
-\def\pstThreeDPlotFunc{\psplotThreeD}% only for compatibility
+\def\pstThreeDCircle{\pst@object{pstThreeDCircle}}
+\def\pstThreeDCircle@i(#1)(#2)(#3){% (vec O)(vec a)(vec b)
+ \addbefore@par{plotstyle=curve}%
+ \@nameuse{beginplot@\psplotstyle}%
+ \getThreeDCoor{#1}\pst@tempC% center
+ \getThreeDCoor{#2}\pst@tempA% a
+ \getThreeDCoor{#3}\pst@tempB% b
+ \addto@pscode{%
+ \pst@3ddict \IIIDplot@variables end
+ \psk@ThreeDplot@linejoin setlinejoin
+ \ifPst@SphericalCoor
+ \pst@tempC\space \tx@ConvertToCartesian
+ /zM \tx@Z def /yM \tx@Y def /xM \tx@X def % center
+ \pst@tempA\space \tx@ConvertToCartesian
+ /zA \tx@Z def /yA \tx@Y def /xA \tx@X def % a
+ \pst@tempB\space \tx@ConvertToCartesian
+ /zB \tx@Z def /yB \tx@Y def /xB \tx@X def % b
+ \else
+ \pst@tempC\space /zM ED /yM ED /xM ED % center
+ \pst@tempA\space /zA ED /yA ED /xA ED % a
+ \pst@tempB\space /zB ED /yB ED /xB ED % b
+ \fi
+% build the orthogonal part of B to vec A
+ \pst@3ddict
+ /vecA [xA yA zA] vector-length def
+ /vecB [xB yB zB] vector-length def
+ [xA yA zA] [xB yB zB] vector-mul vecA div vecB div % is cos(alpha)
+ vecB mul % is |b_parallelA|
+ [xA yA zA] vector-unit exch vector-scale % is b_parallelA
+ [xB yB zB] exch vector-sub % is b-bparallelA=b_orthA
+ dup vector-length vecA exch div vector-scale % is b_orthA with |a|
+ aload pop
+ /zB ED /yB ED /xB ED
+ /vecB [xB yB zB] vector-length def
+ end
+ /aStart \psk@ThreeDplot@beginAngle\space def
+ /aEnd \psk@ThreeDplot@endAngle\space def
+ /da aEnd aStart sub \psk@plotpoints\space div def
+ /xyz {
+ \pst@3ddict %
+%
+% the angle in the parameter equation is not proportional to the real angle!
+% phi=atan(b*tan(angle)/a)+floor(angle/180+0.5)*180
+%
+ /phi angle cvi 90 mod 0 eq { angle } { vecA angle tan mul vecB atan
+ angle 180 div .5 add floor 180 mul add } ifelse def
+ xM xA phi cos mul add xB phi sin mul add
+ yM yA phi cos mul add yB phi sin mul add
+ zM zA phi cos mul add zB phi sin mul add
+ saveCoor ConvertTo2D
+ x2D \pst@number\psxunit mul y2D \pst@number\psyunit mul end
+ } def
+ /angle aStart def
+ }%
+ \gdef\psplot@init{}%
+ \@pstfalse%
+ \@nameuse{testqp@\psplotstyle}%
+ \if@pst\pstThreeDEllipse@ii\else\pstThreeDEllipse@iii\fi%
+ \ignorespaces}
%
+\def\pstThreeDPlotFunc{\psplotThreeD}% only for compatibility
%
% cone[options](center)(radiusA vec)(radiusB vec){height}
%
@@ -960,7 +1054,7 @@
\getThreeDCoor{#3}\pst@tempC%
\addto@pscode{
\pst@3ddict
- \variablesIIID
+ \IIIDplot@variables
\psk@ThreeDplot@linejoin setlinejoin
/xUnit { \pst@number\psxunit\space mul } def
/yUnit { \pst@number\psyunit\space mul } def
@@ -988,7 +1082,7 @@
\def\pst@ThreeDplot@ThetaZ{#6}% rotating angle
\pnode(!%
\pst@3ddict
- \variablesIIID
+ \IIIDplot@variables
\ifPst@SphericalCoor
#1\space #2\space #3\space
ConvertToCartesian
@@ -1030,7 +1124,7 @@
0 viewpoint 0 \tx@SetMatrixThreeD
viewpoint
\pst@3ddict /vZ ED /vY ED /vX ED
- \variablesIIID
+ \IIIDplot@variables
\psk@ThreeDplot@linejoin setlinejoin
/pas 0.5 def
/pas10 pas 10 div def
@@ -1097,7 +1191,7 @@
\psk@ThreeDplot@increment\space
/cmyk {} def % we need only the values
\psk@ThreeDplot@SegmentColor\space
- tx@3DPlotDict begin \variablesIIID MaillageSphere end
+ tx@3DPlotDict begin \IIIDplot@variables MaillageSphere end
}% fin du code ps
\showpointsfalse%
\end@SpecialObj%
@@ -1109,7 +1203,7 @@
\let\pst@parOrig\pst@par
\begin@ClosedObj
\addto@pscode{%
- \pst@3ddict \variablesIIID end
+ \pst@3ddict \IIIDplot@variables end
\psk@ThreeDplot@linejoin setlinejoin
/POrig {
#1 #2 #3 \ifPst@CylindricalCoor \tx@ConvCylToCartesian \fi
@@ -1127,7 +1221,7 @@
\let\pst@par\pst@parOrig
\begin@SpecialObj
\addto@pscode{%
- \pst@3ddict \variablesIIID end
+ \pst@3ddict \IIIDplot@variables end
\psk@ThreeDplot@linejoin setlinejoin
/POrig {
#1 #2 #3 \ifPst@CylindricalCoor \tx@ConvCylToCartesian \fi
@@ -1148,7 +1242,7 @@
\let\pst@par\pst@parOrig
\begin@ClosedObj
\addto@pscode{%
- \pst@3ddict \variablesIIID end
+ \pst@3ddict \IIIDplot@variables end
\psk@ThreeDplot@linejoin setlinejoin
/POrig {
#1 #2 #3 #5 add \ifPst@CylindricalCoor \tx@ConvCylToCartesian \fi
@@ -1193,7 +1287,7 @@
0 viewpoint 0 \tx@SetMatrixThreeD
viewpoint
\pst@3ddict /vZ ED /vY ED /vX ED
- \variablesIIID end
+ \IIIDplot@variables end
\psk@ThreeDplot@linejoin setlinejoin
%
#1 #2 #3 \ifPst@CylindricalCoor \tx@ConvCylToCartesian \fi
@@ -1256,7 +1350,7 @@
viewpoint
\tx@3DPlotDict
/vZ ED /vY ED /vX ED
- \variablesIIID
+ \IIIDplot@variables
\psk@ThreeDplot@linejoin setlinejoin
%
#1 #2 #3
@@ -1321,7 +1415,7 @@
\@nameuse{testqp@\psplotstyle}%
\if@pst% lines and dots
\addto@pscode{
- \variablesIIID
+ \IIIDplot@variables
/func { #5 } def
\ifPst@algebraic /Func ( #5 ) tx@addDict begin AlgParser end cvx def \fi
/xMin #1 def
@@ -1346,7 +1440,7 @@
\ifPst@hiddenLine\pscustom[style=hiddenStyle]{\fi%
\@nameuse{beginplot@\psplotstyle}%
\addto@pscode{
- \variablesIIID
+ \IIIDplot@variables
/func { #5 } def
\ifPst@algebraic /Func ( #5 ) tx@addDict begin AlgParser end cvx def \fi
/xMin #1 def
@@ -1417,7 +1511,7 @@
\@nameuse{testqp@\psplotstyle}%
\if@pst% lines and dots
\addto@pscode{%
- \variablesIIID
+ \IIIDplot@variables
/func { #5 } def
\ifPst@algebraic /Func (#5) tx@addDict begin AlgParser end cvx def \fi
/x #1 def
@@ -1442,7 +1536,7 @@
\ifPst@hiddenLine\pscustom[style=hiddenStyle]{\fi
\@nameuse{beginplot@\psplotstyle}%
\addto@pscode{%
- \variablesIIID
+ \IIIDplot@variables
/func { #5 } def
\ifPst@algebraic /Func (#5) tx@addDict begin AlgParser end cvx def \fi
/yMin #3 def
@@ -1520,7 +1614,7 @@
\ifPst@Debug\typeout{===>Quick plot}\fi
\def\pslinetype{0}%
\addto@pscode{%
- \variablesIIID
+ \IIIDplot@variables
\ifPst@algebraic /Func (#5) tx@addDict begin AlgParser end cvx def \fi
/tMin #1 def
/t tMin def
@@ -1545,7 +1639,7 @@
\multido{\n@Y=0+1}{\psk@ThreeDplot@yPlotpoints}{%
\@nameuse{beginplot@\psplotstyle}%
\addto@pscode{%
- \variablesIIID
+ \IIIDplot@variables
\ifPst@algebraic /Func (#5) tx@addDict begin AlgParser end cvx def \fi
/tMin #1 def
/t tMin def
@@ -1641,7 +1735,7 @@
\def\dataplotThreeD@ii#1{%
\@nameuse{beginplot@\psplotstyle}%
\addto@pscode{%
- \variablesIIID
+ \IIIDplot@variables
/Dx { /D { Dy } def } def
/Dy { /D { Dz } def } def
/Dz { % now we have x y z
@@ -1679,7 +1773,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{ \IIIDplot@variables /D {} def mark }%
#1%
\addto@pscode{\tx@ScalePointsThreeD}%
\@nameuse{endplot@\psplotstyle}%
@@ -1720,7 +1814,7 @@
% \kern\wd\pst@hbox%
\pst@Verb{%
{ [ 1 0
- \variablesIIID
+ \IIIDplot@variables
%
% ### begin Torsten Suhling
% ------------------------------------------------------------------------
@@ -1753,7 +1847,7 @@
% 255 < 0 -Beta -Beta Beta Beta
% 345 < 0 -Beta -Beta Beta Beta
% ================================================================
- \ifx\psk@ThreeDplot@planecorr\ThreeDplot@planecorrOff
+ \ifx\psk@ThreeDplot@planecorr\ThreeDplot@planecorrNone
/SignFlag 1 def
/AlphaOffset 0 \psk@IIIDdAlpha add def
\else%
diff --git a/Master/texmf-dist/tex/latex/pst-3dplot/pst-3dplot.sty b/Master/texmf-dist/tex/latex/pst-3dplot/pst-3dplot.sty
index d7f9f778d45..c7ceefdbfd0 100644
--- a/Master/texmf-dist/tex/latex/pst-3dplot/pst-3dplot.sty
+++ b/Master/texmf-dist/tex/latex/pst-3dplot/pst-3dplot.sty
@@ -1,11 +1,11 @@
-%% $Id: pst-3dplot.sty 9 2008-01-03 20:22:50Z herbert $
+%% $Id: pst-3dplot.sty 50 2008-11-12 13:44:21Z herbert $
\RequirePackage{pstricks}
\ProvidesPackage{pst-3dplot}[2006/02/07 package wrapper for
pst-3dplot.tex (hv)]
\input{pst-3dplot.tex}
\IfFileExists{pst-3dplot.pro}{%
\ProvidesFile{pst-3dplot.pro}
- [2008/01/03 v. 0.25, PostScript prologue file (hv)]
+ [2008/11/12 v. 0.27, PostScript prologue file (hv)]
\@addtofilelist{pst-3dplot.pro}}{}%
\ProvidesFile{pst-3dplot.tex}
[\filedate\space v\fileversion\space `PST-3dplot' (hv)]
diff --git a/Master/tlpkg/bin/ctan2tds b/Master/tlpkg/bin/ctan2tds
index 88f8b903995..49f483ae780 100755
--- a/Master/tlpkg/bin/ctan2tds
+++ b/Master/tlpkg/bin/ctan2tds
@@ -3096,6 +3096,7 @@ sub MAKEpst
&dotex;
&dotype1;
killfiles($standardclean);
+ &killfiles ($moreclean{$package}, "more") if $moreclean{$package};
&SYSTEM("mkdir -p $DEST/tex/latex/$package");
&SYSTEM("mv $DEST/tex/generic/$package/*sty $DEST/tex/latex/$package");
&SYSTEM("mv $DEST/doc/generic/$package/*cfg $DEST/tex/latex/$package");