From 33d655a1e6d73f28a58b8ef484baa8607ed14530 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 14 Nov 2008 19:41:50 +0000 Subject: pst-3dplot 1.82 (13nov08) git-svn-id: svn://tug.org/texlive/trunk@11300 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/generic/pst-3dplot/Changes | 14 +- .../doc/generic/pst-3dplot/pst-3dplot-doc.bib | 4 +- .../doc/generic/pst-3dplot/pst-3dplot-doc.pdf | Bin 2249172 -> 2274425 bytes .../doc/generic/pst-3dplot/pst-3dplot-doc.tex | 596 +++++++++++---------- Master/texmf-dist/dvips/pst-3dplot/pst-3dplot.pro | 56 +- .../texmf-dist/source/generic/pst-3dplot/Makefile | 24 +- .../tex/generic/pst-3dplot/pst-3dplot.tex | 200 +++++-- .../texmf-dist/tex/latex/pst-3dplot/pst-3dplot.sty | 4 +- Master/tlpkg/bin/ctan2tds | 1 + 9 files changed, 537 insertions(+), 362 deletions(-) (limited to 'Master') 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 Binary files a/Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.pdf and b/Master/texmf-dist/doc/generic/pst-3dplot/pst-3dplot-doc.pdf 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[] -\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 & & 45\\ -Beta & & 30\\ -xMin & & -1\\ %ok -xMax & & 4\\ %ok -yMin & & -1\\ %ok -yMax & & 4\\ %ok -zMin & & -1\\ %ok -zMax & & 4\\ %ok -nameX & & \$x\$\\ -spotX & & 180\\ -nameY & & \$y\$\\ -spotY & & 0\\ -nameZ & & \$z\$\\ -spotZ & & 90\\ -IIIDticks & false|true & false\\ -Dx & & 1\\ -Dy & & 1\\ -Dz & & 1\\ -IIIDxTicksPlane & xy|xz|yz & xy\\ -IIIDyTicksPlane & xy|xz|yz & yz\\ -IIIDzTicksPlane & xy|xz|yz & yz\\ -IIIDticksize & & 0.1\\ -IIIDxticksep & & -0.4\\ -IIIDyticksep & & -0.2\\ -IIIDzticksep & & 0.2\\ -RotX & & 0\\ -RotY & & 0\\ -RotZ & & 0\\ -RotAngle & & 0\\ -xRotVec & & 0\\ -yRotVec & & 0\\ -zRotVec & & 0\\ -RotSequence & xyz|xzy|yxz|yzx|zxy|zyx|quaternion & xyz\\ -RotSet & set|concat|keep & set\\ -eulerRotation & true|false & false\\ +\Lkeyword{Alpha} & & 45\\ +\Lkeyword{Beta} & & 30\\ +\Lkeyword{xMin} & & -1\\ %ok +\Lkeyword{xMax} & & 4\\ %ok +\Lkeyword{yMin} & & -1\\ %ok +\Lkeyword{yMax} & & 4\\ %ok +\Lkeyword{zMin} & & -1\\ %ok +\Lkeyword{zMax} & & 4\\ %ok +\Lkeyword{nameX} & & \$x\$\\ +\Lkeyword{spotX} & & 180\\ +\Lkeyword{nameY} & & \$y\$\\ +\Lkeyword{spotY} & & 0\\ +\Lkeyword{nameZ} & & \$z\$\\ +\Lkeyword{spotZ} & & 90\\ +\Lkeyword{IIIDticks} & false|true & false\\ +\Lkeyword{Dx} & & 1\\ +\Lkeyword{Dy} & & 1\\ +\Lkeyword{Dz} & & 1\\ +\Lkeyword{IIIDxTicksPlane} & xy|xz|yz & xy\\ +\Lkeyword{IIIDyTicksPlane} & xy|xz|yz & yz\\ +\Lkeyword{IIIDzTicksPlane} & xy|xz|yz & yz\\ +\Lkeyword{IIIDticksize} & & 0.1\\ +\Lkeyword{IIIDxticksep} & & -0.4\\ +\Lkeyword{IIIDyticksep} & & -0.2\\ +\Lkeyword{IIIDzticksep} & & 0.2\\ +\Lkeyword{RotX} & & 0\\ +\Lkeyword{RotY} & & 0\\ +\Lkeyword{RotZ} & & 0\\ +\Lkeyword{RotAngle} & & 0\\ +\Lkeyword{xRotVec} & & 0\\ +\Lkeyword{yRotVec} & & 0\\ +\Lkeyword{zRotVec} & & 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[](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=](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){} -\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[](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[]{}(x1,y1,z1)(...)(xn,yn,zn) -\end{verbatim}} +\begin{BDef} +\Lcs{pstThreeDLine}\OptArgs\OptArg{\Larg{}}\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()()() -\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[](()()() -\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[](){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[