%FSTYLE{/syracuse/fabrique/styles/fabrique.css} %AUTEUR{Jean-Michel Sarlat} %MAIL{jsarlat@planete.net} %TITRE{Vue en 3D (package pst-vue3D.tex)} TAG:0 FICHIER:3D4.pro:*: FICHIER:pst-vue3d.sty:*: FICHIER:pst-vue3d.tex:*: M:patron_fig: fichier="doc-maitre.tex" input="figN.tex" %P{Le package §vpst-vue3D.tex§ écrit par §gManuel Luque§ permet la représentation d'objets en 3D avec §gPSTricks§. Ce document reprend les illustrations de la documentation de Manuel en les accompagnant de leur code source.§§ Toutes les figures sont obtenues en utilisant un §ldoc-maitre.tex§document maître§ où §vfigN.tex§ est successivement remplacé par le nom du fichier présenté au dessus de chaque figure. Ce document embarque un certain nombre de définitions utilisées dans la description des figures.§§ §l/syracuse/texpng/mluque/DocVue3D/DocVue3D.xml§La documentation du package pst-vue3D.tex§ } FICHIER:bfig.txt:: <- une macro pour aller vite %S{%%titre%%} TAG:%%n%% FICHIER:fig%%n%%.tex: § FICHIER:efig.txt:: M:patron_fig: fichier="cfig%%n%%.tex" input="fig%%n%%.tex" EXEC:log:Images.pl -fpng -t%%t%% -i2 -acBBox cfig%%n%%.tex M:tex2html: tex="fig%%n%%.tex" html="fig%%n%%.html" %IMG{align=center}{cfig%%n%%.png} § M:bfig: n="1" titre="Un dé" t="2" \begin{pspicture}(-1,-1)(1,1) \psset{THETA=70,PHI=30,Dobs=100,Decran=10} \psset{A=5,B=5,C=A,fillstyle=solid,fillcolor=GrisClair,linecolor=red} \Die \end{pspicture} § M:efig: M:bfig: n="2" titre="Rotation du dé autour de Oz" t="1.2" \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} \psset{RotZ=\iRotZ} \tapis \Die% \axeOZ \uput[180](Z'){\texttt{RotZ=\iRotZ}} \end{pspicture}\hfill} § M:efig: M:bfig: n="3" titre="Parallèlipipède en rotation autour de Ox" \psset{THETA=-10,PHI=20,Dobs=200,Decran=10} \multido{\iCX=0+30}{8}{% \begin{pspicture}(-1.5,-1.5)(1.5,1.5) % point défini par ses coordonnées (x,y,z) % \PointThreeD(x,y,z){name} \PointThreeD(0,0,0){O} \PointThreeD(0,0,20){Z} \PointThreeD(50,0,0){X} \PointThreeD(0,20,0){Y} \psset{A=20,B=5,C=10,fillstyle=solid,fillcolor=LightBlue,linecolor=gray} \psset{CX=0,CZ=0,CY=0,RotZ=0,RotY=0,RotX=\iCX} \Cube% \psset{linestyle=dashed} \psline(O)(Z) \psline(O)(X) \psline(O)(Y) \uput[0](Z){Z} \uput[0](X){X} \uput[0](Y){Y} \end{pspicture}\hfill} § M:efig: M:bfig: n="4" titre="Sphère" t="2" \psset{THETA=60,PHI=30,Dobs=100,Decran=10} \begin{pspicture}(-3,-4)(3,5) % CX,CY,CZ coordonnées centre de l'objet % \SphereThreeD[CX=...,CY=...,CZ=...]{rayon} \psset{CX=0,CZ=0,CY=0} {\psset{fillstyle=gradient,gradbegin=white,gradend=blue,% gradmidpoint=0.2,linecolor=cyan,linewidth=0.1mm} \SphereThreeD{20}} % PhiCercle=latitude du cercle % \SphereCercle[PhiCercle=...]{rayon} \psset{linecolor=red,PhiCercle=45} \SphereCercle{20} % ThetaMeridien=longitude du méridien % \SphereMeridien[ThetaMeridien=...]{rayon} \SphereMeridien[ThetaMeridien=45]{20} % \PointLongitudeLatitude{rayon}{longitude}{latitude}{nom du point} \PointLongitudeLatitude{20}{45}{45}{A} \PointLongitudeLatitude{40}{45}{45}{B} \psline[linecolor=magenta]{->}(A)(B) \PointLongitudeLatitude{20}{0}{90}{Nord} \PointLongitudeLatitude{40}{0}{90}{Nord1} \psline[linecolor=magenta]{->}(Nord)(Nord1) \SphereCercle[PhiCercle=0]{20} \SphereMeridien[ThetaMeridien=0]{20} \end{pspicture} § M:efig: M:bfig: n="5" titre="Hémisphère" \begin{pspicture}(-3,-4)(3,5) % CX,CY,CZ coordonnées centre de l'objet % \DemiSphereThreeD[CX=...,CY=...,CZ=...]{rayon} \psset{CX=0,CZ=0,CY=0} \psset{fillstyle=gradient,gradbegin=cyan,gradend=magenta,% gradmidpoint=0,linecolor=red,linewidth=0.1mm} \DemiSphereThreeD[RotY=90]{20} \end{pspicture} § M:efig: M:bfig: n="6" titre="Demi-sphères creuses" \begin{pspicture}(-3,-4)(3,5) \psset{THETA=185,PHI=0,Dobs=100,Decran=10} % CX,CY,CZ coordonnées centre de l'objet % \SphereThreeD[CX=...,CY=...,CZ=...]{rayon} \psset{fillstyle=gradient,gradbegin=white,gradend=blue,% gradmidpoint=0.2,linecolor=cyan,linewidth=0.1mm} \DemiSphereThreeD[CZ=-5,RotX=180,RotY=-10]{20} \DemiSphereThreeD[CZ=5,RotY=10]{20} \psset{fillstyle=gradient,gradbegin=white,gradend=red,% gradmidpoint=0.2,linecolor=cyan,linewidth=0.1mm} \SphereCreuse[CZ=-5,RotX=180,RotY=-10]{20} \SphereCreuse[CZ=5,RotY=10]{20} \end{pspicture} § M:efig: M:bfig: n="7" titre="Cylindres" t="1.4" \begin{pspicture}(-5,-4)(5,5) \psset{THETA=65,PHI=40,Dobs=150,Decran=10} % plan horizontal {\psset{normaleLongitude=0,% normaleLatitude=90,% Xorigine=0,% Yorigine=0,% Zorigine=0} \FrameThreeD[fillstyle=solid,fillcolor=cyan](-50,0)(50,50) \FrameThreeD[fillstyle=solid,fillcolor=OrangePale](-50,0)(50,-50) \QuadrillageThreeD[linecolor=green,linewidth=0.2mm,grille=10,% Ymin=-50,Ymax=50,Xmax=50,Xmin=-50]} {\psset{fillstyle=gradient,gradbegin=white,gradend=red,% gradmidpoint=0.2,linewidth=0.1mm} \multido{\iCY=-45+90}{2}{% \CylindreThreeD[CX=-45,CY=\iCY,CZ=0]{5}{50} \DemiSphereThreeD[CX=-45,CZ=50,CY=\iCY,fillstyle=gradient,% gradbegin=white,gradend=yellow]{5}} {\psset{CX=0,CY=0,CZ=0} \CylindreThreeD{10}{15} \psset{CX=0,CY=0,CZ=15} \CylindreThreeD{20}{5}} {\psset{fillstyle=gradient,gradbegin=white,gradend=blue,% gradmidpoint=0.2,linecolor=cyan,linewidth=0.1mm} \DemiSphereThreeD[CZ=35,RotX=180]{20}} {\psset{fillstyle=gradient,gradbegin=white,gradend=red,% gradmidpoint=0.2,linecolor=cyan,linewidth=0.1mm} \SphereCreuse[CZ=35,RotX=180]{20}} {\psset{CX=15,CY=15,CZ=5,RotY=90,RotX=0,RotZ=30} \CylindreThreeD{5}{20}} \multido{\iCY=-45+90}{2}{% \CylindreThreeD[CX=45,CY=\iCY,CZ=0]{5}{50} \DemiSphereThreeD[CX=45,CZ=50,CY=\iCY,fillstyle=gradient,gradbegin=white, gradend=yellow,linestyle=none]{5}}} \end{pspicture} § M:efig: M:bfig: n="8" titre="Plans et quadrillages" t="1.6" \psset{THETA=-10,PHI=10,Dobs=200,Decran=10} \begin{pspicture}(-5,-2)(5,4) % plan de front {\psset{normaleLongitude=180,% normaleLatitude=0,% Xorigine=0,% Yorigine=0,% Zorigine=0} \FrameThreeD[fillstyle=solid,fillcolor=OrangePale](-50,-50)(50,50) \QuadrillageThreeD[linecolor=blue,linewidth=0.2mm,grille=10,% Ymin=-50,Ymax=50,Xmax=50,Xmin=-50]} % plan vertical de gauche {\psset{normaleLongitude=90,% normaleLatitude=0,% Xorigine=0,% Yorigine=50,% Zorigine=0} \FrameThreeD[fillstyle=solid,fillcolor=yellow](0,-50)(50,50) \QuadrillageThreeD[linecolor=blue,linewidth=0.2mm,grille=10,% Ymin=-50,Ymax=50,Xmax=50,Xmin=0]} % plan vertical à droite {\psset{normaleLongitude=90,% normaleLatitude=0,% Xorigine=0,% Yorigine=-50,% Zorigine=0} \FrameThreeD[fillstyle=solid,fillcolor=yellow](0,-50)(50,50) \QuadrillageThreeD[linecolor=red,linewidth=0.2mm,grille=10,% Ymin=-50,Ymax=50,Xmax=50,Xmin=0]} % plan horizontal {\psset{normaleLongitude=0,% normaleLatitude=90,% Xorigine=0,% Yorigine=0,% Zorigine=0} \FrameThreeD[fillstyle=solid,fillcolor=cyan](-50,0)(50,50) \QuadrillageThreeD[linecolor=green,linewidth=0.2mm,grille=10,% Ymin=0,Ymax=50,Xmax=50,Xmin=-50]} \PointThreeD(0,0,0){O} \PointThreeD(0,0,100){Z} \PointThreeD(100,0,0){X} \PointThreeD(0,100,0){Y} {\psset{linecolor=red,linestyle=dashed} \psline(O)(Z) \psline(O)(X) \psline(O)(Y)} \uput[0](Z){Z} \uput[0](X){X} \uput[0](Y){Y} \end{pspicture} § M:efig: M:bfig: n="9" titre="Points et droites" \psset{THETA=70,PHI=30,Dobs=150,Decran=10} \begin{center} \begin{pspicture}(-5,-2)(5,4) \PointThreeD(0,0,0){O} \PointThreeD(0,0,60){Z} \PointThreeD(60,0,0){X} \PointThreeD(0,60,0){Y} {\psset{linecolor=red,linestyle=dashed} \psline(O)(Z) \psline(O)(X) \psline(O)(Y)} \uput[0](Z){Z} \uput[0](X){X} \uput[0](Y){Y} \PointThreeD(25,-25,25){A} \PointThreeD(25,25,25){B} \PointThreeD(25,25,-25){C} \PointThreeD(25,-25,-25){D} \PointThreeD(-25,-25,25){E} \PointThreeD(-25,25,25){F} \PointThreeD(-25,25,-25){G} \PointThreeD(-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} § M:efig: M:bfig: n="10" titre="Cercles" t="1.4" \psset{THETA=80,PHI=50,Dobs=120,Decran=10} \begin{pspicture}(-5,-6)(5,1) \multido{\iX=-70+10}{15}{% \PointThreeD(\iX,0,0){X1} \PointThreeD(\iX,50,0){X2} \psline(X1)(X2)} \multido{\iY=0+10}{6}{% \PointThreeD(-70,\iY,0){Y1} \PointThreeD(70,\iY,0){Y2} \psline(Y1)(Y2)} \psset{normaleLongitude=0,normaleLatitude=90,Zorigine=0} \multido{\iXorigine=-65+10}{14}{% \multido{\iYorigine=5+10}{5}{% \psset{Yorigine=\iYorigine,Xorigine=\iXorigine} \CircleThreeD[linecolor=red]{5}}} \end{pspicture} § M:efig: M:bfig: n="11" titre="Objets divers" t="1.3" \psset{THETA=70,PHI=40,Dobs=150,Decran=8} \begin{pspicture}(-5,-4)(5,8) % parallélépipède défini par la demi-longueur de ses côtés % A (suivant OX); B A (suivant OY) ; C (suivant OZ) % CX, CY, CZ sont les coordonnées du centre % RotZ=...,RotY=...,RotX=... sont les rotations % qu'on peut lui faire subir autour des axes. % La commande s'appelle \Cube {\psset{A=50,B=5,C=5,fillstyle=solid,fillcolor=GrisClair,linecolor=red} \psset{CX=0,CZ=5,CY=-5,RotZ=0,RotY=0,RotX=0} \Cube} {\psset{A=5,B=5,C=50,fillstyle=solid,fillcolor=GrisClair,linecolor=red} \psset{CX=0,CZ=60,CY=-5,RotZ=0,RotY=0,RotX=0} \Cube} \PointThreeD(0,0,0){O} \PointThreeD(0,0,120){Z} \PointThreeD(100,0,0){X} \PointThreeD(0,60,0){Y} {\psset{linecolor=red,linestyle=dashed} \psline(O)(Z) \psline(O)(X) \psline(O)(Y)} \uput[0](Z){Z} \uput[0](X){X} \uput[0](Y){Y} \multido{\iX=-70+10}{15}{% \PointThreeD(\iX,0,0){X1} \PointThreeD(\iX,50,0){X2} \psline(X1)(X2)} \multido{\iY=0+10}{6}{% \PointThreeD(-70,\iY,0){Y1} \PointThreeD(70,\iY,0){Y2} \psline(Y1)(Y2)} \psset{fillstyle=gradient,gradbegin=white,gradend=red,% gradmidpoint=0.2,linewidth=0.1mm} % Le cylindre est défini par son rayon, sa hauteur % les coordonnées du centre de la base CX, CY et CZ % RotZ=...,RotY=...,RotX=... sont les rotations % qu'on peut lui faire subir autour des axes. % \CylindreThreeD{rayon}{hauteur} {\psset{CX=-60,CY=-5,CZ=0} \CylindreThreeD{5}{50}} \multido{\iZ=60+20,\iX=-60+20,\iY=-5+7}{4}{% \psset{fillstyle=gradient,gradbegin=white,gradend=blue,% gradmidpoint=0.2,linecolor=cyan,linewidth=0.1mm,% CX=\iX,CZ=\iZ,CY=\iY} \SphereThreeD{4}} {\psset{CZ=0,CY=40,CX=50,RotZ=20,linecolor=black,% fillstyle=gradient,Rtetraedre=10} \Tetraedre} \psset{RotX=0,RotZ=30,RotY=0,CX=-20,CZ=0,CY=25,fillstyle=solid,% linecolor=black,A=15,Hpyramide=10} \Pyramide \psset{linecolor=red,fillstyle=gradient,gradbegin=yellow,% gradend=red,gradmidpoint=0,linewidth=0.05mm} {\psset{CX=60,CZ=0,CY=10,fracHcone=0.75} \ConeThreeD{10}{100}} \end{pspicture} § M:efig: %%EOF