Changeset 25

Show
Ignore:
Timestamp:
05/10/08 14:37:42 (8 months ago)
Author:
jpv
Message:

Interfaçage géodes et dualpolyedreregulier

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/pst-solides3d.tex

    r24 r25  
    2424%% Definition des differentes variables pour PSTricks 
    2525%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
     26% 
     27%%%%%%%%%%%%%%%%% variables numeriques %%%%%%%%%%%%%%%%%  
     28% 
    2629% point de vue et rotations de l'objet 
    2730% distance de l'ecran a l'observateur 
    28 \define@key[psset]{pst-solides3d}{Decran}{\def\pst@solides@Decran{#1}}% distance de l'ecran 
    2931% 
    3032\define@key[psset]{pst-solides3d}{viewpoint}{\def\pst@solides@viewpoint{#1}}% position de l'observateur 
    3133\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 
    4139% parametres propres a chaque objet 
    4240\define@key[psset]{pst-solides3d}{resolution}{\def\pst@solides@resolution{#1}} % nb points par courbe 
     
    5452\define@key[psset]{pst-solides3d}{trunccoeff}{\def\pst@solides@trunccoeff{#1}} % coeff de troncature 
    5553\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% 
    5658\define@key[psset]{pst-solides3d}{base}{\def\pst@solides@base{#1}} % base du prisme 
    5759\psset[pst-solides3d]{base=-1 -1 1 -1 0 1}% coordonnees d'un triangle, base triangulaire par defaut 
     
    5961\psset[pst-solides3d]{axe=0 0 1}% vecteur definissant la direction de l'axe du prisme 
    6062\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
     63trunccoeff=.25,affinagecoeff=.8,dualregcoeff=1
    6264\define@key[psset]{pst-solides3d}{hauteurlignedeniveau}{\def\psk@solides@hauteurlignedeniveau{#1}} 
    6365\psset[pst-solides3d]{hauteurlignedeniveau=0}% 
     
    120122\edef\pst@solides@mode{\the\test@mode}}% 
    121123\psset[pst-solides3d]{mode=2}% 
    122  
     124
     125%%%%%%%%%%%%%%%%% variables booleennes %%%%%%%%%%%%%%%%%  
     126
    123127\define@boolkey[psset]{pst-solides3d}[Pst@]{SphericalCoor}[true]{} 
    124128\psset{SphericalCoor=false} 
     
    129133\define@boolkey[psset]{pst-solides3d}[Pst@]{grid}[false]{} 
    130134\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} 
    131141 
    132142\define@boolkey[psset]{pst-solides3d}[Pst@]{tracelignedeniveau}[true]{} 
     
    232242surface,calottespherecreuse,polygoneregulier,fusion,new,chemin,courbeR2,courbe,% 
    233243surfaceparametree,texte,trigospherique,vecteur,ligne,objfile,datfile,surface*,% 
    234 plan,offfile
     244plan,offfile,geode
    235245%% Reservation de macros correspondants aux objects 
    236246\pst@solides@reservednames{object} 
     
    359369/trunccoeff \pst@solides@trunccoeff\space def % coeff de troncature 
    360370/affinagecoeff \pst@solides@affinagecoeff\space def % coeff de affinage 
     371/dualregcoeff \pst@solides@dualregcoeff\space def % coeff de dual 
    361372/section {\pst@solides@section} def % section de l'objet de revolution 
    362373/base [ \pst@solides@base ] def 
     
    506517   /solidgrid false def 
    507518\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% 
    508532\ifPst@hollow 
    509533   /solidhollow true def 
  • trunk/solides.pro

    r24 r25  
    47824782   } def 
    47834783   @range aload pop @ngrid {@F} newsurfaceparametree 
     4784end 
     4785} def 
     4786 
     4787 
     4788/plan2eq { 
     47896 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] 
    47844800end 
    47854801} def 
     
    74967512      } ifelse 
    74977513   } if 
     7514   solidgeode { 
     7515      1 newgeode 
     7516   } if 
     7517   soliddualreg { 
     7518      dualpolyedreregulier 
     7519   } if 
    74987520   RotX 0 ne RotY 0 ne or RotZ 0 ne or { 
    74997521      {RotX RotY RotZ rotateOpoint3d} solidtransform 
     
    79968018   l@pl@n newplan 
    79978019   gere_pstricks_opt 
    7998    noir 
    7999    setTimes  
     8020%   noir 
     8021%   setTimes  
    80008022%   (Test) 0 0 l@pl@n cctextp3d 
    80018023   l@pl@n planmarks 
    8002 } def 
    8003  
    8004 /plan2eq { 
    8005 6 dict begin 
    8006    /leplan exch def 
    8007    leplan plangetbase aload pop vectprod3d 
    8008    /c exch def 
    8009    /b exch def 
    8010    /a exch def 
    8011    leplan plangetorigine 
    8012    /z0 exch def 
    8013    /y0 exch def 
    8014    /x0 exch def 
    8015    [a b c a x0 mul b y0 mul add c z0 mul add neg] 
    8016 end 
    80178024} def 
    80188025 
     
    80308037   } ifelse 
    80318038   eq2plan  
     8039} def 
     8040 
     8041/pst-geode { 
     8042   ngrid aload pop newgeode 
     8043   gere_pstricks_opt 
    80328044} def 
    80338045 
  • trunk/tests/test_05.tex

    r6 r25  
    1515\maketitle 
    1616 
    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 
     22L'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 
     35L'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 
     46L'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 
     58L'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 
     71L'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} 
    1887 
    1988%\psset{lightsrc=10 20 30,SphericalCoor=true,viewpoint=50 20 30}