Changeset 25
- Timestamp:
- 05/10/08 14:37:42 (8 months ago)
- Files:
-
- trunk/pst-solides3d.tex (modified) (8 diffs)
- trunk/solides.pro (modified) (4 diffs)
- trunk/tests/test_05.pdf (modified) (previous)
- trunk/tests/test_05.tex (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/pst-solides3d.tex
r24 r25 24 24 %% Definition des differentes variables pour PSTricks 25 25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 26 % 27 %%%%%%%%%%%%%%%%% variables numeriques %%%%%%%%%%%%%%%%% 28 % 26 29 % point de vue et rotations de l'objet 27 30 % distance de l'ecran a l'observateur 28 \define@key[psset]{pst-solides3d}{Decran}{\def\pst@solides@Decran{#1}}% distance de l'ecran29 31 % 30 32 \define@key[psset]{pst-solides3d}{viewpoint}{\def\pst@solides@viewpoint{#1}}% position de l'observateur 31 33 \psset[pst-solides3d]{viewpoint=10 10 10}% coordonnees cartesiennes 32 % rotation autour de Ox en degres 33 \define@key[psset]{pst-solides3d}{RotX}{\def\psk@solides@RotX{#1}} 34 % rotation autour de Oy en degres 35 \define@key[psset]{pst-solides3d}{RotY}{\def\psk@solides@RotY{#1}} 36 % rotation autour de Oz en degres 37 \define@key[psset]{pst-solides3d}{RotZ}{\def\psk@solides@RotZ{#1}} 38 39 \psset[pst-solides3d]{RotZ=0,RotX=0,RotY=0,Decran=50}% 40 34 \define@key[psset]{pst-solides3d}{Decran}{\def\pst@solides@Decran{#1}}% distance de l'ecran 35 \define@key[psset]{pst-solides3d}{RotX}{\def\psk@solides@RotX{#1}}% rotation autour de Ox en degres 36 \define@key[psset]{pst-solides3d}{RotY}{\def\psk@solides@RotY{#1}}% rotation autour de Oy en degres 37 \define@key[psset]{pst-solides3d}{RotZ}{\def\psk@solides@RotZ{#1}}% rotation autour de Oz en degres 38 \psset[pst-solides3d]{RotZ=0,RotX=0,RotY=0,Decran=50}% valeurs par defaut 41 39 % parametres propres a chaque objet 42 40 \define@key[psset]{pst-solides3d}{resolution}{\def\pst@solides@resolution{#1}} % nb points par courbe … … 54 52 \define@key[psset]{pst-solides3d}{trunccoeff}{\def\pst@solides@trunccoeff{#1}} % coeff de troncature 55 53 \define@key[psset]{pst-solides3d}{affinagecoeff}{\def\pst@solides@affinagecoeff{#1}} % coeff de affinage 54 \define@key[psset]{pst-solides3d}{dualregcoeff}{\def\pst@solides@dualregcoeff{#1}} % coeff de dual 55 % 56 %%%%%%%%%%%%%%%%% variables complexes %%%%%%%%%%%%%%%%% 57 % 56 58 \define@key[psset]{pst-solides3d}{base}{\def\pst@solides@base{#1}} % base du prisme 57 59 \psset[pst-solides3d]{base=-1 -1 1 -1 0 1}% coordonnees d'un triangle, base triangulaire par defaut … … 59 61 \psset[pst-solides3d]{axe=0 0 1}% vecteur definissant la direction de l'axe du prisme 60 62 \psset[pst-solides3d]{R=4,r1=4,r0=1.5,r=2,no=0,a=4,b=a,c=a,h=6,phi=0,theta=90,resolution=36,% 61 trunccoeff=.25,affinagecoeff=.8 }63 trunccoeff=.25,affinagecoeff=.8,dualregcoeff=1} 62 64 \define@key[psset]{pst-solides3d}{hauteurlignedeniveau}{\def\psk@solides@hauteurlignedeniveau{#1}} 63 65 \psset[pst-solides3d]{hauteurlignedeniveau=0}% … … 120 122 \edef\pst@solides@mode{\the\test@mode}}% 121 123 \psset[pst-solides3d]{mode=2}% 122 124 % 125 %%%%%%%%%%%%%%%%% variables booleennes %%%%%%%%%%%%%%%%% 126 % 123 127 \define@boolkey[psset]{pst-solides3d}[Pst@]{SphericalCoor}[true]{} 124 128 \psset{SphericalCoor=false} … … 129 133 \define@boolkey[psset]{pst-solides3d}[Pst@]{grid}[false]{} 130 134 \psset{grid=true} 135 136 \define@boolkey[psset]{pst-solides3d}[Pst@]{dualreg}[true]{} 137 \psset{dualreg=false} 138 139 \define@boolkey[psset]{pst-solides3d}[Pst@]{geode}[true]{} 140 \psset{dualreg=false} 131 141 132 142 \define@boolkey[psset]{pst-solides3d}[Pst@]{tracelignedeniveau}[true]{} … … 232 242 surface,calottespherecreuse,polygoneregulier,fusion,new,chemin,courbeR2,courbe,% 233 243 surfaceparametree,texte,trigospherique,vecteur,ligne,objfile,datfile,surface*,% 234 plan,offfile }244 plan,offfile,geode} 235 245 %% Reservation de macros correspondants aux objects 236 246 \pst@solides@reservednames{object} … … 359 369 /trunccoeff \pst@solides@trunccoeff\space def % coeff de troncature 360 370 /affinagecoeff \pst@solides@affinagecoeff\space def % coeff de affinage 371 /dualregcoeff \pst@solides@dualregcoeff\space def % coeff de dual 361 372 /section {\pst@solides@section} def % section de l'objet de revolution 362 373 /base [ \pst@solides@base ] def … … 506 517 /solidgrid false def 507 518 \fi 519 % 520 \ifPst@dualreg 521 /soliddualreg true def 522 \else 523 /soliddualreg false def 524 \fi 525 % 526 \ifPst@geode 527 /solidgeode true def 528 \else 529 /solidgeode false def 530 \fi 531 % 508 532 \ifPst@hollow 509 533 /solidhollow true def trunk/solides.pro
r24 r25 4782 4782 } def 4783 4783 @range aload pop @ngrid {@F} newsurfaceparametree 4784 end 4785 } def 4786 4787 4788 /plan2eq { 4789 6 dict begin 4790 /leplan exch def 4791 leplan plangetbase aload pop vectprod3d 4792 /c exch def 4793 /b exch def 4794 /a exch def 4795 leplan plangetorigine 4796 /z0 exch def 4797 /y0 exch def 4798 /x0 exch def 4799 [a b c a x0 mul b y0 mul add c z0 mul add neg] 4784 4800 end 4785 4801 } def … … 7496 7512 } ifelse 7497 7513 } if 7514 solidgeode { 7515 1 newgeode 7516 } if 7517 soliddualreg { 7518 dualpolyedreregulier 7519 } if 7498 7520 RotX 0 ne RotY 0 ne or RotZ 0 ne or { 7499 7521 {RotX RotY RotZ rotateOpoint3d} solidtransform … … 7996 8018 l@pl@n newplan 7997 8019 gere_pstricks_opt 7998 noir7999 setTimes8020 % noir 8021 % setTimes 8000 8022 % (Test) 0 0 l@pl@n cctextp3d 8001 8023 l@pl@n planmarks 8002 } def8003 8004 /plan2eq {8005 6 dict begin8006 /leplan exch def8007 leplan plangetbase aload pop vectprod3d8008 /c exch def8009 /b exch def8010 /a exch def8011 leplan plangetorigine8012 /z0 exch def8013 /y0 exch def8014 /x0 exch def8015 [a b c a x0 mul b y0 mul add c z0 mul add neg]8016 end8017 8024 } def 8018 8025 … … 8030 8037 } ifelse 8031 8038 eq2plan 8039 } def 8040 8041 /pst-geode { 8042 ngrid aload pop newgeode 8043 gere_pstricks_opt 8032 8044 } def 8033 8045 trunk/tests/test_05.tex
r6 r25 15 15 \maketitle 16 16 17 \section {Test géode} 17 \section {Test géode avec PSTricks} 18 19 %\psset{lightsrc=10 20 30,SphericalCoor=true,viewpoint=50 20 30} 20 \psset{SphericalCoor=true,viewpoint=50 20 30} 21 22 L'attribut \texttt{geode} pour géodiser un solide existant (ici un tétraèdre) 23 \begin{center} 24 \psset{unit=1} 25 \psset{lightsrc=10 0 10,SphericalCoor=true,viewpoint=50 -20 30,Decran=100} 26 \begin{pspicture*}(-5,-4)(6,4) 27 \psframe(-5,-4)(6,4) 28 \psSolid[object=tetrahedron, 29 geode] 30 \end{pspicture*} 31 \end{center} 32 33 \newpage 34 35 L'objet \texttt{geode} 36 \begin{center} 37 \psset{unit=1} 38 \psset{lightsrc=10 0 10,SphericalCoor=true,viewpoint=50 -20 30,Decran=120} 39 \begin{pspicture*}(-5,-4)(6,4) 40 \psframe(-5,-4)(6,4) 41 \psSolid[object=geode, 42 ngrid=3 2] 43 \end{pspicture*} 44 \end{center} 45 46 L'attribut \texttt {geode} 47 \begin{center} 48 \psset{unit=1} 49 \psset{lightsrc=10 0 10,SphericalCoor=true,viewpoint=50 -20 30,Decran=120} 50 \begin{pspicture*}(-5,-4)(6,4) 51 \psframe(-5,-4)(6,4) 52 \psSolid[object=geode, 53 geode, 54 ngrid=3 2] 55 \end{pspicture*} 56 \end{center} 57 58 L'attribut \texttt {dualreg} 59 \begin{center} 60 \psset{unit=1} 61 \psset{lightsrc=10 0 10,SphericalCoor=true,viewpoint=50 -20 30,Decran=120} 62 \begin{pspicture*}(-5,-4)(6,4) 63 \psframe(-5,-4)(6,4) 64 \psSolid[object=geode, 65 dualreg, 66 ngrid=3 2] 67 \end{pspicture*} 68 \end{center} 69 70 \newpage 71 L'attribut \texttt {dualreg} 72 \begin{center} 73 \psset{unit=1} 74 \psset{lightsrc=10 0 10,SphericalCoor=true,viewpoint=50 -20 30,Decran=120} 75 \begin{pspicture*}(-5,-4)(6,4) 76 \psframe(-5,-4)(6,4) 77 \psSolid[object=tetrahedron, 78 trunc=all, 79 trunccoeff=.33, 80 r=1, 81 dualreg, 82 ] 83 \end{pspicture*} 84 \end{center} 85 86 \section {Test géode avec jps} 18 87 19 88 %\psset{lightsrc=10 20 30,SphericalCoor=true,viewpoint=50 20 30}
