From 9af6f4b19e87b817b84926042b4ee84445ddbb1d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 21 Mar 2020 21:21:32 +0000 Subject: rm pst-vue3d, obsolete on ctan git-svn-id: svn://tug.org/texlive/trunk@54455 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/generic/pst-vue3d/Changes | 23 - Master/texmf-dist/doc/generic/pst-vue3d/README | 48 - .../doc/generic/pst-vue3d/pst-vue3d-doc.bib | 129 -- .../doc/generic/pst-vue3d/pst-vue3d-doc.pdf | Bin 4588365 -> 0 bytes .../doc/generic/pst-vue3d/pst-vue3d-doc.tex | 1266 -------------------- 5 files changed, 1466 deletions(-) delete mode 100644 Master/texmf-dist/doc/generic/pst-vue3d/Changes delete mode 100644 Master/texmf-dist/doc/generic/pst-vue3d/README delete mode 100644 Master/texmf-dist/doc/generic/pst-vue3d/pst-vue3d-doc.bib delete mode 100644 Master/texmf-dist/doc/generic/pst-vue3d/pst-vue3d-doc.pdf delete mode 100644 Master/texmf-dist/doc/generic/pst-vue3d/pst-vue3d-doc.tex (limited to 'Master/texmf-dist/doc') diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/Changes b/Master/texmf-dist/doc/generic/pst-vue3d/Changes deleted file mode 100644 index e4bb5d2241f..00000000000 --- a/Master/texmf-dist/doc/generic/pst-vue3d/Changes +++ /dev/null @@ -1,23 +0,0 @@ ------ pst-vue3d.tex -1.24 2008-02-21 hv: draw circles for 360 degrees instead of 359 -1.23 2007-03-26 hv: load pst-vue3d.pro instead of 3d.pro -1.22 2005-05-10 hv: make the unit option available -1.21 2005-02-21 hv: use always pst-xkey and using \def instead - of \edef for the parameter definitions -1.2 2004-09-12 hv: use always \pst@object for the definition - of the 3d objects -1.1 2004-08-23 hv: use the default macro style of pstricks -1.0i 2004-06-05 hv: fixed bug -1.0h 2004-01-05 ml: added dodecaedron -1.0g 2003-12-21 hv: fixed a bug in \pNodeThreeD -1.0f 2003-12-20 hv: added two eye macros, drop the options for - CX,CY,CZ and Xorigine,... - added option SphericalCoor and modify all - macros to use it -1.0e 2003-12-18 hv: edit the \AxesThreeD macro -1.0d 2003-12-18 hv: fix bug in truncated pyramid - - ------ pst-vue3d.pro -33 2007-03-26 hv: renamed to pst-vue3d.pro -32 2005-05-10 hv: make the unit option available diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/README b/Master/texmf-dist/doc/generic/pst-vue3d/README deleted file mode 100644 index 12ea4dd201d..00000000000 --- a/Master/texmf-dist/doc/generic/pst-vue3d/README +++ /dev/null @@ -1,48 +0,0 @@ -%% Package `pst-vue3d.tex' -%% -%% Herbert Voss (Germany) -%% -%% 2007-03-26 -%% - -PSTricks offers excellent macros to insert more or less complex -graphics into a document. pstricks.tex itself is the base for several -other additional packages, which are mostly named pst-xxxx, -like pst-vue3d. There exists several packages for plotting three -dimensional graphical objects. pst-vue3d is similiar to the -pst-plot package for two dimensional objects and mathematical functions. - - -Save the files - -pst-vue3d.sty -pst-vue3d.tex -pst-vue3d.pro - -in any place, where latex or any other TeX program will find it. -The pro file should go into $TEXMF$/dvips/pstricks/. - -pst-vue3d uses the extended version of the keyval package. So -be sure that you -- have installed xkeyval with the special pst-xkey - (CTAN: tex-archive/macros/latex/contrib/xkeyval/) -- do not load another package after pst-vue3d, which loads - the old keyval.sty or pst-key.tex - - -If you like to get the documentation file in another format run - -latex pst-vue3d-doc.tex -bibtex pst-vue3d.doc -latex pst-vue3d-doc.tex -dvips pst-vue3d-doc.dvi - -to get a PostScript file. But pay attention, that the pst-vue3d -files are saved in the above mentioned way, before you run -latex on the documentation file. - -The intermediate DVI file works only with viewers which can -interprete the embedded PostScript code. - -For another PDF output read the Introduction from -the documentation. diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/pst-vue3d-doc.bib b/Master/texmf-dist/doc/generic/pst-vue3d/pst-vue3d-doc.bib deleted file mode 100644 index 3b785845e22..00000000000 --- a/Master/texmf-dist/doc/generic/pst-vue3d/pst-vue3d-doc.bib +++ /dev/null @@ -1,129 +0,0 @@ -@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} } - -@Book{PostScript, - Author = {Kollock, Nikolai G.}, - Title = {PostScript richtig eingesetzt: vom Konzept zum - praktischen Einsatz}, - Publisher = {IWT}, - Address = {Vaterstetten}, - year = 1989, -} - -@Manual{pstricks, - Title = {PSTricks - {\PS} macros for Generic TeX}, - Author = {Timothy Van Zandt}, - Organization = {}, - Address = {\url{http://www.tug.org/application/PSTricks}}, - Note = {}, - year = 1993, -} - - -@Manual{pdftricks, - Title = {PSTricks Support for pdf}, - Author = {Herbert Voss}, - Organization = {}, - Address = {\url{http://PSTricks.de/pdf/pdfoutput.phtml}}, - Note = {}, - year = 2002, -} - -@Manual{miwi, - Title = {References for \TeX{} and Friends}, - Author = {Michael Wiedmann and Peter Karp}, - Organization = {}, - Address = {\url{http://www.miwie.org/tex-refs/}}, - Note = {}, - year = 2003, -} - - -@Manual{pstlens:2001, - Title = {PST-lens - {\PS} macros for Generic TeX}, - Author = {Denis Girou and Manuel Luque}, - Organization = {}, - Address = {\url{ftp://ftp.dante.de/tex-archive/graphics/pstricks/contrib/pst-lens/}}, - Note = {}, - year = 2001, -} - -@Manual{vue3d:2002, - Title = {Vue en 3D}, - Author = {Manuel Luque}, - Organization = {}, - Address = {\url{http://members.aol.com/Mluque5130/vue3d16112002.zip}}, - Note = {}, - year = 2002, -} - -@Article{dtk02.2:jackson.voss:plot-funktionen, - author = {Laura E. Jackson and Herbert Vo{\ss}}, - title = {Die {P}lot-{F}unktionen von {\texttt{pst-plot}}}, - journal = dtk, - year = 2002, - volume = {2/02}, - altvolume = 2, - altnumber = 14, - month = jun, - pages = {27--34}, - annote = bretter, - keywords = {}, - abstract = { Im letzten Heft wurden die mathematischen Funktionen von - \PS~im Zusammenhang mit dem {\LaTeX}-Paket - \texttt{pst-plot} zum Zeichnen von Funktionen beschrieben - und durch Beispiele erl{\"a}utert. In diesem Teil werden - die bislang nur erw{\"a}hnten Plot-Funktionen f{\"u}r - externe Daten behandelt. } -} - -@Article{dtk02.1:voss:mathematischen, - author = {Herbert Vo{\ss}}, - title = {Die mathematischen {F}unktionen von {P}ostscript}, - journal = dtk, - year = 2002, - volume = {1/02}, - altvolume = 1, - altnumber = 14, - month = mar, - pages = {40-47}, - annote = bretter, - keywords = {}, - abstract = { \PS, faktisch genauso alt wie {\TeX}, ist im - Verh{\"a}ltnis dazu allgemein noch weniger bekannt, wenn es - darum geht zu beurteilen, was es denn nun im eigentlichen - Sinne ist. Au{\ss}erdem wird h{\"a}ufig vergessen, dass - sich mit den \PS-Funktionen viele Dinge erledigen lassen, - bei denen sonst auf externe Programme zur{\"u}ckgegriffen - wird. Dies wird im Folgenden f{\"u}r die mathematischen - Funktionen im Zusammenhang mit dem Paket \texttt{pst-plot} - gezeigt. } -} - - -@Book{companion, - author = {Michel Goosens and Frank Mittelbach and Alexander - Samarin}, - title = {The {\LaTeX} {G}raphics {C}ompanion}, - publisher = {{Addison-Wesley Publishing Company}}, - year = {2004}, - edition = {2.}, - address = {Reading, Mass.} -} - -@Book{PSTricks2, - author = {Herbert Vo\ss}, - title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX}, - edition = {4.}, - publisher = {DANTE -- Lehmanns}, - year = {2007}, - address = {Heidelberg/Hamburg} -} - -@Book{voss:math, - author = {Herbert Vo\ss}, - title = {\LaTeX\ in {M}athematik und {N}aturwissenschaften}, - publisher = {{Franzis-Verlag}}, - year = {2006}, - address = {Poing} -} - diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/pst-vue3d-doc.pdf b/Master/texmf-dist/doc/generic/pst-vue3d/pst-vue3d-doc.pdf deleted file mode 100644 index 8f43cdafea1..00000000000 Binary files a/Master/texmf-dist/doc/generic/pst-vue3d/pst-vue3d-doc.pdf and /dev/null differ diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/pst-vue3d-doc.tex b/Master/texmf-dist/doc/generic/pst-vue3d/pst-vue3d-doc.tex deleted file mode 100644 index e0808473fc1..00000000000 --- a/Master/texmf-dist/doc/generic/pst-vue3d/pst-vue3d-doc.tex +++ /dev/null @@ -1,1266 +0,0 @@ -\listfiles -\documentclass[english]{article} -\usepackage[T1]{fontenc} -\usepackage[latin1]{inputenc} -\usepackage{lmodern}% only for PDF output -%\usepackage[scaled=0.9]{luximono} -\usepackage[a4paper,bmargin=2cm,tmargin=2cm]{geometry} -\usepackage{url} -\usepackage{morefloats} -\setcounter{totalnumber}{10} -\setcounter{dbltopnumber}{10} -\renewcommand{\textfraction}{0} -\usepackage{subfig} -% Mluque5130@aol.com -% 17 octobre 2003 -% Herbert Voss -% March 2007 -\def\UrlFont{\small\ttfamily} -\makeatletter -\def\verbatim@font{\small\normalfont\ttfamily} -\makeatother -\usepackage[colorlinks,linktocpage]{hyperref} -\usepackage[english]{babel} -\usepackage{pstricks,multido,pst-grad} -\usepackage{pst-vue3d} -\let\VueFversion\fileversion -\usepackage{showexpl} -\def\PS{PostScript} -% -\definecolor{GrisClair} {rgb}{0.6,0.7,0.8} -\definecolor{GrisTresClair} {rgb}{0.8,0.9,0.7} -\definecolor{GrayA} {rgb}{0.35,0.95,0.95} -\definecolor{GrayB} {rgb}{0.85,0.85,0.35} -\definecolor{GrayC} {rgb}{0.75,0.35,0.55} -\definecolor{GrayD} {rgb}{0.65,0.65,0.65} -\definecolor{GrayE} {rgb}{0.7,0.9,0.65} -\definecolor{LightBlue}{rgb}{.68,.85,.9} -% -\newcommand\tapis{% - \psset{normaleLatitude=90,normaleLongitude=0} - \FrameThreeD[fillcolor=green,fillstyle=solid](0,0,-5)(-20,-20)(20,20) - \QuadrillageThreeD[grille=10](0,0,-5)(-20,-20)(20,20)% -} -% -\def\Table{{% - \CubeThreeD[A=30,B=30,C=2,CubeColorFaceOne={.7 .6 .5}](0,0,-2) - \psset{normaleLongitude=0,normaleLatitude=90} - \QuadrillageThreeD[linewidth=0.2mm,linecolor=white,% - grille=5](0,0,0)(-30,-30)(30,30) -}} -% -\def\DessusTable{{% - \psset{normaleLongitude=0,normaleLatitude=90} - \QuadrillageThreeD[linewidth=0.2mm,linecolor=gray,% - grille=5](0,0,0)(-30,-30)(30,30)% -}} -\def\PlansOXYZ{{% - \psset{normaleLongitude=0,normaleLatitude=90} - \FrameThreeD[fillstyle=solid,fillcolor=GrisClair](0,0,0)(-50,0)(0,50) - \QuadrillageThreeD[linewidth=0.2mm,grille=10](0,0,0)(-50,0)(0,50)% - \psset{normaleLongitude=90,normaleLatitude=0} - \FrameThreeD[fillstyle=solid,fillcolor=GrisTresClair](0,0,0)(0,0)(50,-50) - \QuadrillageThreeD[linewidth=0.2mm,grille=10](0,0,0)(0,-50)(50,0)% - \psset{normaleLongitude=0,normaleLatitude=0} - \FrameThreeD[fillstyle=solid,fillcolor=GrisTresClair](0,0,0)(-50,0)(0,-50) - \QuadrillageThreeD[linewidth=0.2mm,grille=10](0,0,0)(-50,-50)(0,0)% - }} -\psset{CubeColorFaceOne=1 1 1,% - CubeColorFaceTwo=1 0 0,% - CubeColorFaceThree=0 1 0,% - CubeColorFaceFour=0 0 1,% - CubeColorFaceFive=1 1 0,% - CubeColorFaceSix=0 1 1} -% -\def\hexagon{% -\begin{pspicture}(-2.2,-2.2)(2.2,2) - \Table - \pNodeThreeD(-8.66,-5,0){A6} - \pNodeThreeD(-8.66,5,0){A1} - \pNodeThreeD(0,10,0){A2} - \pNodeThreeD(8.66,5,0){A3} - \pNodeThreeD(8.66,-5,0){A4} - \pNodeThreeD(0,-10,0){A5}% - \psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,% - linestyle=none](A1)(A2)(A3)(A4)(A5)(A6)} - \DessusTable - \endpsclip - \psset{A=5,B=5,C=5} - \CubeThreeD[RotZ=60](-6.83,-11.830,5)%6 - \CubeThreeD[RotZ=120](6.83,-11.830,5)%5 - \CubeThreeD(-13.86,0,5)%1 - \CubeThreeD[RotZ=-60](-6.83,11.830,5)%2 - \CubeThreeD[RotZ=-120](6.83,11.830,5)%3 - \CubeThreeD[RotZ=180](13.86,0,5)%4 -\end{pspicture}% -} -% -\def\stardodecagon{% - \begin{pspicture}(-2.2,-2)(2.2,2.2) - \Table - \pNodeThreeD(-6.83,-11.83,0){A6}% - \pNodeThreeD(-13.86,0,0){A1}% - \pNodeThreeD(-6.83,11.83,0){A2}% - \pNodeThreeD(6.83,11.83,0){A3}% - \pNodeThreeD(13.86,0,0){A4}% - \pNodeThreeD(6.83,-11.83,0){A5}% - \psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,% - linestyle=none](A1)(A2)(A3)(A4)(A5)(A6)} - \DessusTable - \endpsclip% - \psset{A=5,B=5,C=5} - \CubeThreeD[RotZ=105](-10.6066,6.12372,5)%2 - \CubeThreeD[RotZ=45](0,12.2474,5)%1 - \CubeThreeD[RotZ=345](10.6066,6.12372,5)%6 - \CubeThreeD[RotZ=165](-10.6066,-6.12372,5)%3 - \CubeThreeD[RotZ=225](0,-12.2474,5)%4 - \CubeThreeD[RotZ=285](10.6066,-6.12372,5)%5 -\end{pspicture}} -% -\def\pentagon{% - \begin{pspicture}(-2.2,-2.2)(2.2,2.2) - \Table - \pNodeThreeD(8.5065,0,0){A1}% - \pNodeThreeD(2.6287,8.09,0){A2}% - \pNodeThreeD(-6.882,5,0){A3}% - \pNodeThreeD(-6.882,-5,0){A4}% - \pNodeThreeD(2.6287,-8.09,0){A5}% - \psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,% - linestyle=none](A1)(A2)(A3)(A4)(A5)} - \DessusTable - \endpsclip% - \psset{A=5,B=5,C=5} - \CubeThreeD(-11.88,0,5)%1 - \CubeThreeD[RotZ=72](-3.617,-11.3,5)%5 - \CubeThreeD[RotZ=-72](-3.617,11.3,5)%2 - \CubeThreeD[RotZ=-144](9.61267,6.984,5)%3 - \CubeThreeD[RotZ=144](9.61267,-6.984,5)%4 -\end{pspicture}} -% -\def\stardecagon{% - \begin{pspicture}*(-2.2,-1.75)(2.2,2.2) - \Table - \pNodeThreeD(-12.03,0,0){A1}% - \pNodeThreeD(-3.7178,-11.44,0){A2}% - \pNodeThreeD(9.7325,-7.071,0){A3}% - \pNodeThreeD(9.7325,7.071,0){A4}% - \pNodeThreeD(-3.7178,11.44,0){A5}% - \psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,% - linestyle=none](A1)(A2)(A3)(A4)(A5)} - \DessusTable - \endpsclip% - \psset{A=5,B=5,C=5} - \CubeThreeD[RotZ=81](-7.87375,-5.72061,5)%4 - \CubeThreeD[RotZ=9](-7.87375,5.72061,5)%3 - \CubeThreeD[RotZ=153](3.0075,-9.2561,5)%5 - \CubeThreeD[RotZ=-63](3.0075,9.25615,5)%2 - \CubeThreeD[RotZ=-135](9.73249,0,5)%1 -\end{pspicture}% -} -\def\octogon{% - \begin{pspicture}(-2.2,-2.2)(2.2,2.2) - \Table - \pNodeThreeD(12.07,5,0){A1}% - \pNodeThreeD(5,12.07,0){A2}% - \pNodeThreeD(-5,12.07,0){A3}% - \pNodeThreeD(-12.07,5,0){A4}% - \pNodeThreeD(-12.07,-5,0){A5}% - \pNodeThreeD(-5,-12.071,0){A6}% - \pNodeThreeD(5,-12.07,0){A7}% - \pNodeThreeD(12.07,-5,0){A8}% - \psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,% - linestyle=none](A1)(A2)(A3)(A4)(A5)(A6)(A7)(A8)} - \DessusTable - \endpsclip% - \psset{A=5,B=5,C=5} - \CubeThreeD(-17.07,0,5)%5 - \CubeThreeD[RotZ=45](-12.07,-12.07,5)%6 - \CubeThreeD[RotZ=90](0,-17.07,5)%7 - \CubeThreeD[RotZ=135](12.07,-12.07,5)%8 - \CubeThreeD[RotZ=-45](-12.07,12.07,5)%4 - \CubeThreeD[RotZ=-90](0,17.07,5)%3 - \CubeThreeD[RotZ=-135](12.07,12.07,5)%2 - \CubeThreeD[RotZ=180](17.07,0,5)%1 -\end{pspicture}% -} -% -\def\starhexadecagon{% - \begin{pspicture}(-2.2,-2)(2.2,2.2) - \Table - \pNodeThreeD(17.07,7.07,0){A1}% - \pNodeThreeD(7.07,17.07,0){A2}% - \pNodeThreeD(-7.07,17.07,0){A3}% - \pNodeThreeD(-17.07,7.07,0){A4}% - \pNodeThreeD(-17.07,-7.07,0){A5}% - \pNodeThreeD(-7.07,-17.07,0){A6}% - \pNodeThreeD(7.07,-17.07,0){A7}% - \pNodeThreeD(17.07,-7.07,0){A8}% - \psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,% - linestyle=none](A1)(A2)(A3)(A4)(A5)(A6)(A7)(A8)} - \DessusTable - \endpsclip% - \psset{A=5,B=5,C=5} - \CubeThreeD[RotZ=225](-17.07,0,5)%5 - \CubeThreeD[RotZ=-90](-12.07,-12.07,5)%6 - \CubeThreeD[RotZ=-45](0,-17.07,5)%7 - \CubeThreeD(12.07,-12.07,5)%8 - \CubeThreeD[RotZ=180](-12.07,12.07,5)%4 - \CubeThreeD[RotZ=135](0,17.07,5)%3 - \CubeThreeD[RotZ=90](12.07,12.07,5)%2 - \CubeThreeD[RotZ=45](17.07,0,5)%1 -\end{pspicture}} -% -\def\DecorSable{% - \FrameThreeD[normaleLongitude=0,normaleLatitude=90,% - fillstyle=solid,fillcolor=GrayE](0,0,0)(-60,-60)(60,60) - \QuadrillageThreeD[normaleLongitude=0,normaleLatitude=90,% - linecolor=GrayA,linewidth=0.2mm,grille=10](0,0,0)(-60,-60)(60,60)% -} -\newpsstyle{GradGrayWhite}{fillstyle=gradient,% - gradbegin=blue,gradend=white,linewidth=0.1mm}% - -\begin{document} - -\title{3D views with \texttt{pst-vue3d}\\[3ex] - \normalsize (v. \VueFversion)} -\author{Manuel Luque\thanks{\url{mluque5130 _at_ aol.com}}\ -and Herbert Vo\ss\thanks{\url{voss _at_ pstricks.de}}} - -\maketitle -\tableofcontents -\clearpage - -\section{Presentation} -The 3D representation of an object or a landscape is one of the -most interesting subject in computer science and have many -industrial applications (car and plane design, video game -etc\ldots). In a smaller way, one can obtain very didactic -realizations using PSTricks with two peculiarities: -\begin{itemize} - \item using PostScript; - \item being manageable through \LaTeX. -\end{itemize} -Package \texttt{pst-key} of David \textsc{Carlisle} allows to -write commands with parameters. Using this as an interface, one -can observe the result of little modifications of some parameters. -Our parameters being here: the position of the watcher, the choice -of an solid (cube, sphere etc\ldots) and many other things. I want -to signal that -\begin{itemize} -\item -Regarding 3D representation, one does not forget the package pst-3d by Timothy Van Zandt -who has used the best part of Post\-Script. Althrought limited to parallel projections, -this package allows to draw very interesting 3D figure.\footnote{A lot of different examples -for 3D images are available at: \url{http://members.aol.com/Mluque5130/}} -\item Thanks to Denis \textsc{Girou}, i have discovered the -package \texttt{pst-xkey} and I have learned it. -\item I have written another package for drawing picture reflecting -in spherical mirrors.% -\footnote{\url{http://melusine.eu.org/syracuse/mluque/BouleMiroir/boulemiroir.html}} - -It is a french paper which illustrate a study of Pr. Henri -\textsc{Bouasse} from this book \textit{Optique sup\'erieure}, edited in $1917$ by Delagrave. -\end{itemize} - - -\section{Aims} -First, we want to draw the 3D representation with elimination of -the hidden parts of some objects. - -The position of the watcher will be defined by its spherical -coordinates: the distances from the origin, the longitude $\theta$ -and the latitude $\phi$. We will choose, too, the distance of the -projection screen from this point. - -Second, we want to define some $3D$ elements of the scene: the bricks. - -The following bricks are already defined -\begin{itemize} -\item A box given by its three dimensions \verb+A,B,C+: it could -be turn into a cube or a dice. -\item A point which can be defined it two ways -\begin{itemize} -\item By cartesian coordinates $(x,y,z)$ -\item Or by spherical coordinates $(R,\theta,\phi)$ - ($\theta$, $\phi$ are, respectively, longitude and latitude). -\end{itemize} -\item A rectangle. -\item A circle defined by the normal line to its plane, its center -and its radius. An arc is defined as the circle with two limit -angles. -\item A tetrahedron given by the coordinates of the center of its -base and the radius of the circle containing the vertex of each -faces. We can make it rotate. -\item A square pyramid given by the half of the length of the side -of its base and its height. We can make it rotate and move. -\item A sphere given by the coordinates of its center \verb+\SphereThreeD(x,y,z){Radius}+ -and its radius. We can make it rotate with the parameters -\verb+RotX=...+, \verb+RotY=...+, \verb+RotZ=...+ We can choose to -draw only some meridians and parallel circles. - \item A solid or empty half-sphere (same parameters than a sphere) - \item A vertical cylinder defined by its radius and its height. We - can make it rotate using the parameters \verb+RotX=...+, \verb+RotY=...+, \verb+RotZ=...+ - An we can choose the center of its base in the same way than the Sphere. -\item A cone and a truncated cone defined by the radius of their -base, the height and the height of the truncature. -\end{itemize} - -\vspace*{1cm} -To construct a scene, one may choose himself the order of the -objects. For example, if an object 1 is partially hidden by an -object 2, we write, in the list of commands, first object 1 and -second object 2. - -\section{Rotating in the 3D space} - -A 3D object can be rotated around every axes with the \verb+RotX+, \verb+RotY+ and -\verb+RotZ+ option. They can be mixed in every combination. Figure~\ref{fig:rot} shows -how a rotation around the z-axes works. - -\begin{figure}[!htb] -\multido{\iRotZ=0+45}{8}{% - \begin{pspicture}(-1.5,-1.5)(1.5,1.5) - \psset{THETA=70,PHI=30,Dobs=200,Decran=10} - \psset{A=5,B=5,C=A,fillstyle=solid,fillcolor=GrisClair,% - linecolor=red, RotZ=\iRotZ} - \tapis\DieThreeD(0,0,0)% - \LineThreeD[linecolor=red,linestyle=dashed,arrows=->](0,0,0)(0,0,25) - \pNodeThreeD(0,0,12.5){Z'} - \uput[180](Z'){\texttt{RotZ=\iRotZ}} - \end{pspicture}\hfill % -} - -\psset{THETA=-10,PHI=20,Dobs=200,Decran=10} -\multido{\iCX=0+30}{8}{% - \begin{pspicture}(-1.5,-1.5)(1.5,1.5) - \AxesThreeD{->}(50,20,20) - \psset{A=20,B=5,C=10,fillstyle=solid,fillcolor=LightBlue,linecolor=gray} - \psset{RotZ=0,RotY=0,RotX=\iCX} - \CubeThreeD(0,0,0)% - \psset{linestyle=dashed} - \end{pspicture}\hfill% -}% -\caption{Diffenerent views of a die and a cube\label{fig:rot}} -\end{figure} - - -\section{Location of the cube in the space} -Suppose that one wants to place a 10-units edge cube at the point -$(x=40,y=40,z=35)$. First, the half edge of the cube will be -define by the parameters : \verb+A=5,B=5,C=5+, and next the -coordinates of its center by \texttt{(40,40,35)}. On the -figure, the period of the grid is 10~units -(figure~\ref{coordinates}). - -\begin{figure}[!htb] -\centering -\begin{LTXexample}[width=0.45\linewidth] -\psset{THETA=30,PHI=30,Dobs=200,Decran=12} -\begin{pspicture}(-2.8,-3)(3.5,3.5) - \PlansOXYZ - \pNodeThreeD(40,40,35){G} - \pNodeThreeD(40,40,0){G_XY} - \pNodeThreeD(40,0,0){G_X} - \pNodeThreeD(0,40,0){G_Y} - \pNodeThreeD(0,0,35){G_Z} - \pNodeThreeD(0,40,35){G_YZ} - \pNodeThreeD(40,0,35){G_XZ} - \psdots(G)(G_XY)(G_XZ)(G_YZ)(G_X)(G_Y)(G_Z) - \psline(G)(G_XY) - \psline(G)(G_XZ) - \psline(G)(G_YZ) - \psline(G_Z)(G_XZ) - \psline(G_Z)(G_YZ) - \AxesThreeD{->}(55) -\end{pspicture} -\end{LTXexample} -\caption{\label{coordinates}Origin \texttt{(40,40,35)}} -\end{figure} - -\begin{figure}[!ht] -\centering -\begin{LTXexample}[width=0.45\linewidth] -\psset{THETA=30,PHI=30,Dobs=200,Decran=12} -\begin{pspicture}(-2.8,-3)(3.5,3.5) - \PlansOXYZ - \pNodeThreeD(40,40,35){G} - \pNodeThreeD(40,40,0){G_XY} - \pNodeThreeD(40,0,0){G_X} - \pNodeThreeD(0,40,0){G_Y} - \pNodeThreeD(0,0,35){G_Z} - \pNodeThreeD(0,40,35){G_YZ} - \pNodeThreeD(40,0,35){G_XZ} - \psdots(G)(G_XY)(G_XZ)(G_YZ)(G_X)(G_Y)(G_Z) - \psline(G)(G_XY) - \psline(G)(G_XZ) - \psline(G)(G_YZ) - \psline(G_Z)(G_XZ) - \psline(G_Z)(G_YZ) - \psset{A=5,B=5,C=5} - \DieThreeD(40,40,35)% - \AxesThreeD{->}(55) -\end{pspicture} -\end{LTXexample} -\caption{\label{CubeOne}The placed cube.} -\end{figure} - - -To make it rotate of around $OX$ , one adds the parameter \verb+RotX=90+(figure~\ref{RotX}). - -\begin{figure}[!ht] -\begin{LTXexample}[width=0.45\linewidth] -\psset{THETA=30,PHI=30,Dobs=200,Decran=12} -\begin{pspicture}(-2.8,-3)(3.5,3.5) - \PlansOXYZ - \AxesThreeD{->}(55) - \psset{A=5,B=5,C=5,RotX=90} - % projections sur les plaans - \DieThreeD(40,40,5)% - \DieThreeD(5,40,35)% - \DieThreeD(40,5,35)% - \pNodeThreeD(40,40,35){G} - \pNodeThreeD(40,40,10){G_XY} - \pNodeThreeD(10,40,35){G_YZ} - \pNodeThreeD(40,10,35){G_XZ} - \psline(G)(G_XY) - \psline(G)(G_XZ) - \psline(G)(G_YZ) - \DieThreeD(40,40,35)% -\end{pspicture} -\end{LTXexample} -\caption{\label{RotX} 90\textsuperscript{o} rotation around $OX$ and plane projections.} -\end{figure} - - -Three successive rotations around three axes with: \verb+RotX=60,RotY=20,RotZ=110+, are illustrate in figure~\ref{RotXYZ}. - -\begin{figure}[!ht] -\begin{LTXexample}[width=0.45\linewidth] -\psset{THETA=30,PHI=30,Dobs=200,Decran=12} -\begin{pspicture}(-2.8,-3)(3.5,3.5) - \PlansOXYZ - \AxesThreeD(55) - \DieThreeD[A=5,B=5,C=5,RotX=30,RotY=20,RotZ=150](40,40,35)% -\end{pspicture} -\end{LTXexample} -\caption{\label{RotXYZ}rotations around $OX$, $OY$ et $OZ$: \texttt{RotX=60,RotY=20,RotZ=110}.} -\end{figure} - -\section{Constructions using cubes} -This section was done after a book first published in 1873 and -titled: - -\begin{figure}[!ht] -\centering -\psframebox{% -\begin{pspicture}(-3.1,-3.8)(3.1,3) -\rput(0,2.6){M\'ETHODE INTUITIVE} -\rput(0,2){\Large EXERCICES ET TRAVAUX} -\rput(0,1.5){POUR LES ENFANTS} -\rput(0,1){\tiny SELON LA M\'ETHODE ET LES PROC\'ED\'ES} -\rput(0,0){de \textbf{PESTALOZZI et FR\OE{}BEL}} -\rput(0,-1){M\textsuperscript{me} FANNY DELON} -\rput(0,-1.5){\tiny Directrice d'une \'Ecole professionnelle \`a Paris} -\rput(0,-2){M. CH. DELON} -\rput(0,-2.5){\tiny Licenci\'e \`es sciences} -\rput(0,-3){PARIS} -\rput(0,-3.5){1873} -\end{pspicture}} -\end{figure} - -for children at infant school! One can not be surprised that -theses kinds of pedagogue gave rise to the generation of Eintein, -Maxwell, Bohr etc. - - - -\begin{figure}[ht] -\begin{LTXexample}[width=0.45\linewidth] -\psset{THETA=15,PHI=50,Dobs=200,Decran=15} -\hexagon -\end{LTXexample} -\caption{\label{hexagone}hexagon.} -\end{figure} - -\begin{figure}[ht] -\begin{LTXexample}[width=0.45\linewidth] -\psset{THETA=15,PHI=50,Dobs=200,Decran=15}% -\stardodecagon -\end{LTXexample} -\caption{\label{dodecagone}star dodecagon.} -\end{figure} - -\begin{figure}[ht] -\begin{LTXexample}[width=0.45\linewidth] -\psset{THETA=-15,PHI=50,Dobs=200,Decran=15} -\pentagon -\end{LTXexample} -\caption{\label{pentagone}pentagon.} -\end{figure} - -\begin{figure}[ht] -\begin{LTXexample}[width=0.45\linewidth] -\psset{THETA=-15,Decran=10,Dobs=100,PHI=75} -\stardecagon -\end{LTXexample} -\caption{\label{decagone}star decagon.} -\end{figure} - -\begin{figure}[ht] -\begin{LTXexample}[width=0.45\linewidth] -\psset{THETA=20,PHI=75,Decran=10,Dobs=100} -\begin{pspicture*}(-2.5,-2.5)(2.5,2) -\Table -\psset{A=5,B=5,C=5} -\CubeThreeD(-7.88675,0,5)%1 -\CubeThreeD[RotZ=-120](3.94338,6.83,5)%2 -\CubeThreeD[RotZ=120](3.94338,-6.83,5)%3 -\end{pspicture*} -\end{LTXexample} -\caption{\label{triangle}triangle.} -\end{figure} - - -\begin{figure}[ht] -\begin{LTXexample}[width=0.45\linewidth] -\psset{THETA=-15,PHI=50,Decran=10,Dobs=150} -\octogon -\end{LTXexample} -\caption{\label{octogone}octogon.} -\end{figure} - - -\begin{figure}[ht] -\begin{LTXexample}[width=0.45\linewidth] -\psset{THETA=-15,Decran=10,Dobs=150,PHI=75} -\starhexadecagon -\end{LTXexample} -\caption{\label{hexadecagon}star hexadecagon.} -\end{figure} - -\begin{figure}[ht] -\begin{LTXexample}[width=0.45\linewidth] -\psset{THETA=-15,Decran=10,Dobs=150,PHI=75} -\begin{pspicture}(-2.2,-1.75)(2.2,2.2) - \Table - \pNodeThreeD(-8.66,-5,0){A6} - \pNodeThreeD(-8.66,5,0){A1} - \pNodeThreeD(0,10,0){A2} - \pNodeThreeD(8.66,5,0){A3} - \pNodeThreeD(8.66,-5,0){A4} - \pNodeThreeD(0,-10,0){A5}% - \psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,% - linestyle=none](A1)(A2)(A3)(A4)(A5)(A6)} - \DessusTable - \endpsclip - \psset{A=5,B=5,C=5} - \DieThreeD[RotZ=60,RotX=-90](-6.83,-11.83,5)% - \DieThreeD[RotZ=120,RotY=-90](6.83,-11.83,5)% - \DieThreeD[RotX=90](-13.86,0,5)% - \DieThreeD[RotZ=-60,RotY=90](-6.83,11.83,5)% - \DieThreeD[RotZ=-120,RotY=180](6.83,11.83,5)% - \DieThreeD[RotZ=180](13.86,0,5)% -\end{pspicture} -\end{LTXexample} -\caption{\label{pentagoneDie}hexagon with dices.} -\end{figure} - -Observing figure from off : -\begin{verbatim} -\psset{PHI=90,THETA=0} -\end{verbatim} - one obtains classical geometric -figures : - -(\ref{hexagonePlan}) (\ref{dodecagonePlan}) (\ref{pentagonePlan}) (\ref{decagonePlanStar}) -(\ref{trianglePlan}) (\ref{octogonePlan}) (\ref{hexadecagonePlan}) (\ref{hexagonePlanDie}). - -\begin{figure}[ht] -\centering -\psset{THETA=0,Decran=10,Dobs=125,PHI=90} -\hexagon -\caption{\label{hexagonePlan}``flat'' hexagon.} -\end{figure} - - -\begin{figure}[ht] -\centering -\psset{Decran=10,Dobs=100} -\psset{PHI=90,THETA=0} -\stardecagon -\caption{\label{dodecagonePlan}``flat'' star dodecagone.} -\end{figure} -% -\begin{figure}[ht] -\centering -\psset{Decran=10,Dobs=125} -\psset{PHI=90,THETA=0} -\pentagon -\caption{\label{pentagonePlan}``flat'' pentagon.} -\end{figure} - - -\begin{figure}[ht] -\centering -\psset{THETA=0,Decran=10,Dobs=125,PHI=90} -\stardecagon -\caption{\label{decagonePlanStar}``flat'' star decagon.} -\end{figure} -% - - -% -\begin{figure}[ht] -\centering -\psset{PHI=90,THETA=0,Decran=10,Dobs=100} -\begin{pspicture}*(-2.2,-2.2)(2.2,2.2) -\Table -\psset{A=5,B=5,C=5} -\CubeThreeD(-7.88675,0,5)%1 -\CubeThreeD[RotZ=-120](3.94338,6.83,5)%2 -\CubeThreeD[RotZ=120](3.94338,-6.83,5)%3 -\end{pspicture} -\caption{\label{trianglePlan}``flat'' triangle.} -\end{figure} - - -\begin{figure}[ht] -\centering -\psset{PHI=90,THETA=0,Decran=10,Dobs=125} -\octogon -\caption{\label{octogonePlan}``flat'' octogon.} -\end{figure} - - - -\begin{figure}[ht] -\centering -\psset{PHI=90,THETA=0,Decran=10,Dobs=125} -\starhexadecagon -\caption{\label{hexadecagonePlan}``flat'' star hexadecagon.} -\end{figure} - -\begin{figure}[ht] -\centering -\psset{PHI=90,THETA=0,Decran=10,Dobs=125} -\begin{pspicture}(-2.2,-2.2)(2.2,2.2) -\Table -\pNodeThreeD(-8.66,-5,0){A6} -\pNodeThreeD(-8.66,5,0){A1} -\pNodeThreeD(0,10,0){A2} -\pNodeThreeD(8.66,5,0){A3} -\pNodeThreeD(8.66,-5,0){A4} -\pNodeThreeD(0,-10,0){A5}% -\psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,linestyle=none](A1)(A2)(A3)(A4)(A5)(A6)} -\DessusTable -\endpsclip -\psset{A=5,B=5,C=5} -\DieThreeD[RotZ=60,RotX=-90](-6.83,-11.83,5)% -\DieThreeD[RotZ=120,RotY=-90](6.83,-11.83,5)% -\DieThreeD[RotX=90](-13.86,0,5)% -\DieThreeD[RotZ=-60,RotY=90](-6.83,11.83,5)% -\DieThreeD[RotZ=-120,RotY=180](6.83,11.83,5)% -\DieThreeD[RotZ=180](13.86,0,5)% -\end{pspicture} -\caption{\label{hexagonePlanDie}``flat'' hexagon with dices.} -\end{figure} - - - - -\clearpage - - -\section{Sphere, part of sphere, half-sphere, parallels and meridians} - -Beside \verb+sphereThreeD+ there exist several macro for spheres: - -\begin{itemize} -\item \verb|SphereInverseThreeD| -\item \verb|\SphereCercleThreeD| -\item \verb|\SphereMeridienThreeD| -\item \verb|\DemiSphereThreeDThreeD| -\item \verb|\SphereCreuseThreeD| -\item \verb|\PortionSphereThreeD| -\end{itemize} - - -The macro: -\begin{verbatim} -\SphereThreeD(10,30,20){20} -\end{verbatim} -draws the sphere defined by the coordinates of its centre and its radius which is shown in -figure~\ref{sphere} together with the macro -\begin{verbatim} -\PortionSphereThreeD(0,0,0){20} -\end{verbatim} -and some more additional lines. - -\begin{verbatim} -\begin{pspicture}(-3,-3.5)(3,5) -\psset{THETA=30,PHI=30,Dobs=100,Decran=10} -{\psset{style=GradGrayWhite}% -\SphereThreeD(0,0,0){20} -\psset{fillstyle=solid,fillcolor=gray} -\PortionSphereThreeD(0,0,0){20} -\pNodeThreeD(20;10;10){C1} -\pNodeThreeD(40;10;10){D1} -\psline(C1)(D1) -\pNodeThreeD(20;10;-10){C2} -\pNodeThreeD(40;10;-10){D2} -\psline(C2)(D2) -\pNodeThreeD(20;-10;-10){C3} -\pNodeThreeD(40;-10;-10){D3} -\psline(C3)(D3) -\pNodeThreeD(20;-10;10){C4} -\pNodeThreeD(40;-10;10){D4} -\psline(C4)(D4) -\PortionSphereThreeD% - [style=GradGrayWhite](0,0,0){40}} -% PhiCercle=latitude of the cercle -% \SphereCercle[PhiCercle=...]{radius} -\psset{linecolor=white,PhiCercle=45} -\SphereCercleThreeD(0,0,0){20} -% ThetaMeridien=longitude of the meridian -% \SphereMeridien[ThetaMeridien=...]{radius} -\SphereMeridienThreeD% - [ThetaMeridien=45](0,0,0){20} -\pNodeThreeD(20;45;45){A} -\pNodeThreeD(50;45;45){B} -\psline[linecolor=black]{->}(A)(B) -\pNodeThreeD(20;0;90){Nord} -\pNodeThreeD(40;0;90){Nord1} -\psline[linecolor=black]{->}(Nord)(Nord1) -\SphereCercleThreeD[PhiCercle=0](0,0,0){20} -\SphereMeridienThreeD% - [ThetaMeridien=0](0,0,0){20} -\end{pspicture} -\end{verbatim} - - - -\begin{figure}[!htb] -\begin{pspicture}(-3,-3.5)(3,5) -\psset{THETA=30,PHI=30,Dobs=100,Decran=10} -\bgroup - \psset{style=GradGrayWhite}% - \SphereThreeD(0,0,0){20} - \psset{fillstyle=solid,fillcolor=gray} - \PortionSphereThreeD(0,0,0){20} - \pNodeThreeD(20;10;10){C1} - \pNodeThreeD(40;10;10){D1} - \psline(C1)(D1) - \pNodeThreeD(20;10;-10){C2} - \pNodeThreeD(40;10;-10){D2} - \psline(C2)(D2) - \pNodeThreeD(20;-10;-10){C3} - \pNodeThreeD(40;-10;-10){D3} - \psline(C3)(D3) - \pNodeThreeD(20;-10;10){C4} - \pNodeThreeD(40;-10;10){D4} - \psline(C4)(D4) - \PortionSphereThreeD[style=GradGrayWhite](0,0,0){40} -\egroup -% PhiCercle=latitude of the cercle -% \SphereCercle[PhiCercle=...]{radius} - \psset{linecolor=white,PhiCercle=45} - \SphereCercleThreeD(0,0,0){20} -% ThetaMeridien=longitude of the meridian -% \SphereMeridien[ThetaMeridien=...]{radius} - \SphereMeridienThreeD[ThetaMeridien=45](0,0,0){20} -% \pNodeThreeD(radius}{longitude}{latitude}{name of the point} - \pNodeThreeD(20;45;45){A} - \pNodeThreeD(50;45;45){B} - \psline[linecolor=black]{->}(A)(B) - \pNodeThreeD(20;0;90){Nord} - \pNodeThreeD(40;0;90){Nord1} - \psline[linecolor=black]{->}(Nord)(Nord1) - \SphereCercleThreeD[PhiCercle=0](0,0,0){20} - \SphereMeridienThreeD[ThetaMeridien=0](0,0,0){20} -\end{pspicture} -\caption{\label{sphere}A Sphere.} -\end{figure} - - -\begin{figure}[!htb] -\centering -\begin{pspicture}(-3,-2)(3,5) - \psset{THETA=60,PHI=30,Dobs=100,Decran=10} -% \DemiSphereThreeD(x,y,z){radius} - \DemiSphereThreeD[RotX=180,style=GradGrayWhite](0,0,0){20} - \SphereCreuseThreeD[RotX=180,linecolor=white,style=GradGrayWhite](0,0,0){20} - \AxesThreeD[linestyle=dashed](30,30,40) -\end{pspicture} -\caption{\label{halfsphere}half-sphere.} -\end{figure} - - -\begin{figure}[!htb] -\centering -\begin{pspicture}(-3,-2)(3,2) -\psset{THETA=60,PHI=20,Dobs=100,Decran=10} -\psset{style=GradGrayWhite}% -\SphereThreeD(0,0,0){10}% -\DemiSphereThreeD[RotX=180](0,0,0){20}% -\begin{psclip}{% -\SphereCreuseThreeD[RotX=180,linecolor=white](0,0,0){20}}% -\SphereThreeD(0,0,0){10} -\end{psclip}% -\end{pspicture} -\caption{\label{egg} levitation} -\end{figure} - - -\section{A Hole in a sphere} - -\begin{figure}[!htb] -\centering -\psset{THETA=10,PHI=30,Dobs=100,Decran=10} -\begin{pspicture}*(-3,-3)(3,3) - \SphereThreeD[style=GradGrayWhite,gradmidpoint=0.2](0,0,0){40}% - \begin{psclip}{\PortionSphereThreeD[PortionSpherePHI=40,% - DeltaPHI=30,DeltaTHETA=30,linewidth=4\pslinewidth](0,0,0){40}}% - \SphereInverseThreeD[style=GradGrayWhite](0,0,0){40}% - \SphereThreeD[style=GradGrayWhite](0,0,0){30}% - \begin{psclip}{\PortionSphereThreeD[PortionSpherePHI=30,% - DeltaPHI=30,DeltaTHETA=30,linewidth=4\pslinewidth](0,0,0){30}}% - \SphereInverseThreeD[style=GradGrayWhite](0,0,0){30}% - \SphereThreeD[style=GradGrayWhite](0,0,0){20}% - \begin{psclip}{\PortionSphereThreeD[PortionSpherePHI=30,% - DeltaPHI=30,DeltaTHETA=30,linewidth=4\pslinewidth](0,0,0){20}}% - \SphereInverseThreeD[style=GradGrayWhite](0,0,0){20}% - \SphereThreeD[style=GradGrayWhite](0,0,0){10}% - \begin{psclip}{% - \PortionSphereThreeD[PortionSpherePHI=30,% - DeltaPHI=30,DeltaTHETA=30,linewidth=4\pslinewidth](0,0,0){10}}% - \SphereInverseThreeD[style=GradGrayWhite](0,0,0){10}% - \SphereThreeD[style=GradGrayWhite](0,0,0){5}% - \end{psclip}% - \end{psclip}% - \end{psclip}% - \end{psclip}% -\end{pspicture} -\caption{\label{Holeinasphere}A Hole in a sphere.} -\end{figure} - -It is a rectangular hole whose the size are meridian and parallels -arcs (figure~\ref{Holeinasphere}). - -We define the part of the sphere setting its radius, the center -of the sphere and the $\Delta\phi$ and $\Delta\theta$. -\begin{verbatim} -\PortionSphereThreeD[PortionSpherePHI=45,% - PortionSphereTHETA=0,% - DeltaPHI=45,% - DeltaTHETA=20](0,0,0){20} -\end{verbatim} - -There are the parameters of the first hole. The radius is -\texttt{20}. -\begin{verbatim} -{\psset{fillstyle=gradient,% - gradbegin=white,% - gradend=blue,% - gradmidpoint=0.2,% - linecolor=cyan,% - linewidth=0.1mm} -\SphereThreeD(0,0,0){20}}% -\begin{psclip}{% -\PortionSphereThreeD[PortionSpherePHI=45,% - DeltaPHI=45,DeltaTHETA=20](0,0,0){20}} -\SphereInverseThreeD[fillstyle=solid,% - fillcolor=red,% - linecolor=blue](0,0,0){20}% -\end{psclip}% -\end{verbatim} - -This is the tricks to see the inner of the sphere. - -\verb+\SphereInverse+ define the hidden part of the sphere. - - -\section{Drawing a cylinder} -A cylinder is defined by the radius of its base and its height. -The center of the base is set in the usual way, and -\textsf{RotX,RotY,RotZ} make it rotate around the axes. - -\verb+\CylindreThreeD(x,y,z){radius}{hauteur}+ - -\begin{figure}[!htb] -\centering -\begin{pspicture}(-3.5,-2)(3,4.5) -\psset{THETA=5,PHI=40,Dobs=150,Decran=6.5,fillstyle=solid,linewidth=0.1mm} -% plan horizontal -{\psset{normaleLongitude=0, normaleLatitude=90} -\FrameThreeD[fillstyle=solid,fillcolor=GrisClair](0,0,0)(-50,0)(50,50) -\FrameThreeD[fillstyle=solid,fillcolor=GrisClair](0,0,0)(-50,0)(50,-50) -\QuadrillageThreeD(0,0,0)(-50,-50)(50,50)} -\multido{\iCY=-45+90}{2}{% - \CylindreThreeD(-45,\iCY,0){5}{50} - \DemiSphereThreeD(-45,\iCY,50){5}% -} -\CylindreThreeD(0,0,0){10}{15} -\CylindreThreeD(0,0,15){20}{5} -\DemiSphereThreeD[RotX=180](0,0,35){20} -\SphereCreuseThreeD[RotX=180](0,0,35){20} -{\psset{RotY=90,RotX=0,RotZ=30} -\CylindreThreeD(15,15,5){5}{20}} -\multido{\iCY=-45+90}{2}{% -\CylindreThreeD(45,\iCY,0){5}{50} -\DemiSphereThreeD(45,\iCY,50){5}} -\end{pspicture} -\caption{\label{cylinder}cylinders.} -\end{figure} - -\begin{verbatim} -\CylindreThreeD(0,0,-5){10}{15}} -\psset{RotY=90} -\CylindreThreeD(15,15,-5){5}{20} -\end{verbatim} - - -\section{Tetrahedron, cone and square pyramid} -\subsection{square pyramid} -\begin{verbatim} -\psset{A=...,Hpyramide=...} -\Pyramide -\end{verbatim} - -See the examples of figures~(\ref{Pyramid})~(\ref{Obelisque}). - -\begin{figure}[!htb] -\centering -\psset{ColorFaceD=GrayD,ColorFaceA=GrayA,% - ColorFaceB=GrayB,ColorFaceC=GrayC,ColorFaceE=GrayE} -\psframebox[fillstyle=solid,fillcolor=GrayB,framesep=0pt]{% -\begin{pspicture}*(-3,-4)(3,4) -\psset{THETA=-70,PHI=60,Dobs=200,Decran=15} -\DecorSable -\psset{RotZ=45,fillstyle=solid,linecolor=black,A=9} -\PyramideThreeD(5,35,0){10} -\psset{A=10} -\PyramideThreeD(0,0,0){13} -\psset{A=7} -\PyramideThreeD(10,-35,0){8.7} -\end{pspicture}} -\caption{\label{Pyramid}Pyramids of Egypt.} -\end{figure} - - -\begin{figure}[!htb] -\centering -\psframebox[fillstyle=solid,fillcolor=GrayB,framesep=0pt]{% - \begin{pspicture}*(-2.5,-2)(2.5,5.5) - \psset{THETA=30,PHI=30,Dobs=400,Decran=12} - \DecorSable - \CubeThreeD[A=15,B=15,C=15](0,0,15)% - \psset{A=10,fillstyle=solid} - \PyramideThreeD[fracHeight=0.8](0,0,30){150}% - \psset{A=2} - \PyramideThreeD(0,0,150){5}% - \end{pspicture}% -} -\caption{\label{Obelisque}Obelisk of Egypt.} -\end{figure} - - -\subsection{Cone} -\begin{verbatim} -\ConeThreeD[fracHeight=...] - (x,y,z){radius}{Height} -\end{verbatim} -by default \verb+fracHeight=1+ : figure~\ref{Cone}. - -\begin{figure}[!htb] -\centering -\psframebox[fillstyle=solid,fillcolor=GrayB,framesep=0pt]{% -\begin{pspicture}*(-3,-5)(3,4) -\psset{THETA=30,PHI=40,Dobs=200,Decran=12,fillstyle=solid,% - fillcolor=GrisClair,linewidth=0.25\pslinewidth} -\DecorSable -\CylindreThreeD(0,0,0){10}{50} -\ConeThreeD[fillcolor=GrayB](0,0,50){10}{10} -\CylindreThreeD[RotY=90,RotZ=150](40,20,10){10}{50} -\ConeThreeD[fracHeight=0.5](20,-20,0){10}{10} -\CylindreThreeD(20,-20,5){5}{50} -\ConeThreeD[fracHeight=0.5](50,50,0){10}{10} -\CylindreThreeD(50,50,5){5}{50} -\end{pspicture}} -\caption{\label{Cone}Cones and cylinders.} -\end{figure} - -\section{Points and lines} -The command allowing to mark points and thus to draw lines -and polygons can be used of two manners, either with the Cartesian coordinates - \begin{verbatim} -\pNodeThreeD(x,y,z){name} -\end{verbatim} - or with the spherical coordinates : -\begin{verbatim} -\pNodeThreeD(radius;longitude;latitude)% - {name of the point} -\end{verbatim} - -For example \verb+\pNodeThreeD(25,-25,25){A}+, the point $A(25,25,25)$ places. -Points being positioned, just to write \verb+\psline(A)(B)+, to draw the segment $AB$. - - On the figure~\ref {points}, one drew a cube with its diagonals. -\begin{figure}[!htb] -\centering -\psset{unit=1cm} - \psset{THETA=70,PHI=30,Dobs=150,Decran=10} - \begin{pspicture}(-3,-3)(3,4) - \AxesThreeD[linecolor=red,linestyle=dashed](50,60,50) - \pNodeThreeD(25,-25,25){A} - \pNodeThreeD(25,25,25){B} - \pNodeThreeD(25,25,-25){C} - \pNodeThreeD(25,-25,-25){D} - \pNodeThreeD(-25,-25,25){E} - \pNodeThreeD(-25,25,25){F} - \pNodeThreeD(-25,25,-25){G} - \pNodeThreeD(-25,-25,-25){H} - \pspolygon(A)(B)(C)(D) - \pspolygon(E)(F)(G)(H) - \psline(A)(E) - \psline(B)(F) - \psline(C)(G) - \psline(D)(H) - \psset{linestyle=dashed} - \psline(A)(G) - \psline(B)(H) - \psline(C)(E) - \psline(D)(F) -% routine page 49 in "présentation de PSTricks" -% D.Girou "cahier 16 Gutengerg" - \newcounter{lettre} - \multido{\i=1+1}{8}{% - \setcounter{lettre}{\i} - \psdot[linecolor=red](\Alph{lettre}) - \uput[90](\Alph{lettre}){\Alph{lettre}} - } -\end{pspicture} -\caption{\label{points}Points and lines.} -\end{figure} - - -\section{Circles} -A circle is defined by a vector normal for its plan by $(\theta,\varphi)$, with the following parameters for example: -\begin{verbatim} -normaleLongitude=60,normaleLatitude=90 -\end{verbatim} -The coordinates of his centre as well as his radius. -\begin{verbatim} -\CircleThreeD(x,y,z){radius} -\end{verbatim} - -The circles of the figure~\ref{circles}, were drawn with the following -commands: - -\begin{figure}[!htb] -\centering -\psframebox{% - \begin{pspicture}(-2.5,-3.5)(3.5,1.5) - \psset{THETA=50,PHI=50,Dobs=250,Decran=10} - \multido{\iX=-70+10}{15}{% - \pNodeThreeD(\iX,0,0){X1} - \pNodeThreeD(\iX,50,0){X2} - \psline(X1)(X2) - } - \multido{\iY=0+10}{6}{% - \pNodeThreeD(-70,\iY,0){Y1} - \pNodeThreeD(70,\iY,0){Y2} - \psline(Y1)(Y2)% - } - \psset{normaleLongitude=0,normaleLatitude=90} - \multido{\iXorigine=-65+10}{14}{% - \multido{\iYorigine=5+10}{5}{% - \CircleThreeD[linecolor=red](\iXorigine,\iYorigine,0){5}% - }% - } - \end{pspicture}% -} -\caption{\label{circles}circles.} -\end{figure} - -\begin{verbatim} -\psset{normaleLongitude=0,% - normaleLatitude=90} -\multido{\iXorigine=-65+10}{14}{% - \multido{\iYorigine=5+10}{5}{% - \CircleThreeD[linecolor=red]% - (\iXorigine,\iYorigine,0){5}}} -\end{verbatim} - -\section{The macros and the options} -\subsection{The colors of the cube, the pyramid and tetraedre} - -The predefined colors for the different sides of a cube are -always set in the \verb+rgb+ mode : -\begin{verbatim} -CubeColorFaceOne=1 1 0,% -CubeColorFaceTwo=0.9 0.9 0,% -CubeColorFaceThree=0.8 0.8 0,% -CubeColorFaceFour=0.7 0.7 0,% -CubeColorFaceFive=0.65 0.65 0,% -CubeColorFaceSix=0.75 0.75 0 -\end{verbatim} - -The colors for the pyramid and the tetraedre are taken from the predefined ones: -\begin{verbatim} -ColorFaceD=cyan, -ColorFaceA=magenta, -ColorFaceB=red, -ColorFaceC=blue, -ColorFaceE=yellow -\end{verbatim} - -They can be changed in the usual way with the \verb+\psset+ macro. - - -\subsection{Common parameters} -\verb+RotX=, RotY=, RotZ=+ - -The predefined value is zero, means no rotation. - -\subsection{Cube} -The following command places a parallelepiped with a length of $a=40$, $b=20$ and $c=10$ units -and it is placed with its center at the point $x=25$, $y=25$ and $z=25$ - -\begin{verbatim} -\CubeThreeD[A=20,B=10,C=5](25,25,25) -\end{verbatim} - -\begin{figure}[!htb] -\centering -\begin{pspicture}(-3,-3)(3,3.5) -\psset{PHI=30,THETA=45,Dobs=200} -\PlansOXYZ\AxesThreeD(55) -\FrameThreeD[normaleLongitude=0,% - normaleLatitude=90,% - fillstyle=vlines,hatchsep=0.4mm](25,25,0)(-10,-15)(10,15) -\FrameThreeD[normaleLongitude=0,% - normaleLatitude=0,% - fillstyle=vlines,hatchsep=0.4mm](0,25,25)(-10,-5)(10,5) -\FrameThreeD[normaleLongitude=90,% - normaleLatitude=0,% - fillstyle=vlines,hatchsep=0.4mm](25,0,25)(-15,-5)(15,5) -\CubeThreeD[A=15,B=10,C=5](25,25,25)% -\end{pspicture} -\caption{\label{Prisme}Parallelepiped} -\end{figure} - -In other words: the length of the sides is \verb+2A,2B,2C+ (see figure~\ref{Prisme}). - -For rotations, let us consider the result of a rotation around one of the axes, while knowing that it is possible to combine them. The corresponding rotation of projection on the horizontal level is obtained with the parameter: \verb+normaleLongitude=+ (figure~\ref{PrismeRotZ}). - -\begin{figure}[!htb] -\centering -\begin{pspicture}(-3,-3)(3,3.5) -\psset{PHI=30,THETA=45,Dobs=200,RotZ=60} -\PlansOXYZ\AxesThreeD(55) -% la projection sur le plan Oxy -\FrameThreeD[normaleLongitude=60,% - normaleLatitude=90,% - fillstyle=vlines,hatchsep=0.4mm](25,25,0)(-10,-15)(10,15) -\CubeThreeD[A=15,B=10,C=5](25,25,25)% -\end{pspicture} -\caption{\label{PrismeRotZ}The same parallelepiped rotated with \texttt{RotZ=60}.} -\end{figure} - -There is no difference to a die, except that all sides have the same length. - - -\begin{figure}[!htb] -\centering -\begin{pspicture}(-3,-3)(3,3.5) -\psset{PHI=30,THETA=45,Dobs=200,RotZ=60,,RotX=90} -\PlansOXYZ\AxesThreeD(55) -% la projection sur le plan Oxy -\FrameThreeD[normaleLongitude=60,% - normaleLatitude=90,% - fillstyle=vlines,hatchsep=0.4mm](25,25,0)(-5,-15)(5,15) -\CubeThreeD[A=15,B=10,C=5](25,25,25)% -\end{pspicture} -\caption{\label{PrismeRotXRotZ}The same parallelepiped, rotated with the values \texttt{RotX=90,RotZ=60}} -\end{figure} - - -\subsection{Cylinder and circle} -In addition to the already quoted optional parameters the cylinder requires the obligatory parameters: -\begin{verbatim} -\CylindreThreeD[...](x,y,z){radius}{height} -\end{verbatim} - -Projection on the horizontal level is obtained with the following values: - -\begin{verbatim} -\CircleThreeD[normaleLongitude=0,% - normaleLatitude=90,% - fillstyle=vlines,% - hatchsep=0.4mm](30,30,0){10} -\end{verbatim} - -The circle macro needs the following parameters: - -\begin{verbatim} -\CircleThreeD[...](x,y,z){radius} -\end{verbatim} - -Figure~\ref{CylindreDemo} shows an example of the above macros. - -\begin{figure}[!ht] -\centering -\begin{pspicture}(-3,-3)(3,3.5) -\psset{PHI=30,THETA=45,Dobs=200} -\PlansOXYZ\AxesThreeD(55) -% la projection sur le plan Oxy -\CircleThreeD[normaleLongitude=0,% - normaleLatitude=90,% - fillstyle=vlines,% - hatchsep=0.4mm](30,30,0){10} -\CylindreThreeD[fillstyle=solid,fillcolor=yellow,% - linewidth=0.1mm](30,30,20){10}{30}% -\end{pspicture} -\caption{\label{CylindreDemo}A cylinder with a radius of $10$ units and a - height of $50$ units - with its base center at \texttt{(30,30,20)}.% -} -\end{figure} - - -\section{See the interior of a cube} -The following option makes it possible to visualize the interior of the box, the result is seen in the figure~\ref{Cube inside} : - -\begin{verbatim} -\DieThreeD(0,0,0)% -\begin{psclip}{% -\FrameThreeD[normaleLongitude=0,% - normaleLatitude=90]% - (0,0,10)(-10,-10)(10,10)}% -\DieThreeD[CubeInside=true](0,0,0)% -\end{psclip}% -\end{verbatim} - -\begin{figure} -\centering -\begin{pspicture}(-2,-2)(2,3.5) - \psset{A=10,B=10,C=10,PHI=60,THETA=-60} - \DieThreeD(0,0,0)% - \begin{psclip}{% - \FrameThreeD[normaleLongitude=0,% - normaleLatitude=90](0,0,10)(-10,-10)(10,10)}% - \DieThreeD[CubeInside=true](0,0,0)% - \end{psclip}% - \FrameThreeD[normaleLongitude=0,% - normaleLatitude=90,linewidth=1mm](0,0,10)(-10,-10)(10,10)% -\end{pspicture} -\caption{\label{Cube inside}An empty box.} -\end{figure} - - -\nocite{*} - -\bibliographystyle{plain} -\bibliography{pst-vue3d-doc} - -\end{document} -- cgit v1.2.3