Changeset 45

Show
Ignore:
Timestamp:
06/13/08 09:35:56 (6 months ago)
Author:
jpv
Message:

Mise à jour de la doc

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/doc/ex-mobius2.tex

    r2 r45  
    4747\psSolid[object=grille,base=-2.5 2.5 -2.5 2.5,ngrid=0.25,linewidth=0.5\pslinewidth](0,0,-0.25) 
    4848\defFunction[algebraic]{mobius1}(t){(2+0.25*cos(t))*cos(2*t)}{(2+0.25*cos(t))*sin(2*t)}{0.25*sin(t)} 
    49 \psSolid[object=courbe, 
     49\psSolid[object=courbe,r=0, 
    5050        linewidth=0.1, 
    5151        resolution=360,range=0 pi, 
     
    5353        function=mobius1]% 
    5454\defFunction[algebraic]{mobius2}(t){(2-0.25*cos(t))*cos(2*t)}{(2-0.25*cos(t))*sin(2*t)}{-0.25*sin(t)} 
    55 \psSolid[object=courbe, 
     55\psSolid[object=courbe,r=0, 
    5656        linewidth=0.1, 
    5757        resolution=360,range=0 pi, 
  • trunk/doc/par-affinage.tex

    r30 r45  
    1 \section {Affiner d'un solide} 
     1\section {Affiner un solide} 
     2 
     3Nous désignerons par \textsl{affinage de rapport $k$} l'opération qui, 
     4pour une face donnée de centre $G$, consiste à effectuer sur cette 
     5face une homothétie de rapport $k$ et de centre $G$, puis à diviser la 
     6face originelle en utilisant cette nouvelle face. 
     7 
     8Par exemple, voici un cube ayant subi un affinage de rapport $0,8$ sur 
     9sa face supérieure~: 
     10\begin{center} 
     11\psset{unit=0.5} 
     12\psset{lightsrc=10 0 10,SphericalCoor=true,viewpoint=50 -20 30,Decran=50} 
     13\begin{pspicture*}(-4,-4)(4,4) 
     14\psframe(-4,-4)(4,4) 
     15\psSolid[object=cube, 
     16   fillcolor=red, 
     17   affinagerm, 
     18   fcolor=Yellow, 
     19   affinage=0] 
     20\end{pspicture*} 
     21\end{center} 
     22 
     23L'option \verb+affinage+ permet d'affiner les faces soit 
     24globalement, soit individuellement. Cette option utilise l'argument 
     25\verb+affinagecoeff+ (valeur $0, 8$ par défaut) qui indique le rapport 
     26$k$ utiliser pour l'affinage ($0<k<1$). 
     27
     28\begin{itemize} 
     29  \item \texttt{[affinage=all]} affine toutes les faces ; 
     30  \item \texttt{[affinage=0 1 2 3]} affine les faces \texttt{[0,1,2 et 3]} ; 
     31\end{itemize} 
     32 
     33Lorsqu'un face se trouve affinée, le comportement par défaut supprime la face 
     34centrale obtenue. L'option \verb+affinagerm+ permet de conserver cette 
     35face centrale. 
     36 
     37Si on conserve la face centrale, elle est par défaut de la couleur de 
     38la face originelle. L'option \verb+fcolor+ permet de spécifier une 
     39couleur de remplacement. 
     40 
     41\begin{multicols}{2} 
     42\psset{unit=0.5} 
     43\setlength{\columnseprule}{1pt} 
     44\centerline{ 
     45\psset{lightsrc=10 0 10,SphericalCoor=true,viewpoint=50 -20 30,Decran=50} 
     46\begin{pspicture*}(-5,-4)(6,5) 
     47\psframe(-5,-4)(6,5) 
     48\psSolid[object=cube, 
     49   fillcolor=cyan, 
     50   incolor=red, 
     51   hollow, 
     52   affinage=0] 
     53\end{pspicture*}} 
     54\begin{verbatim} 
     55\psSolid[object=cube, 
     56   fillcolor=cyan, 
     57   incolor=red, 
     58   hollow, 
     59   affinage=0] 
     60\end{verbatim} 
     61
     62\columnbreak 
     63
     64\centerline{ 
     65\begin{pspicture*}(-5,-4)(6,5) 
     66\psset{lightsrc=10 0 10,SphericalCoor=true,viewpoint=50 -20 30,Decran=50} 
     67\psframe(-5,-4)(6,5) 
     68\psSolid[object=cube, 
     69   fillcolor=cyan, 
     70   affinagecoeff=.5, 
     71   affinagerm, 
     72   fcolor=.5 setfillopacity Yellow, 
     73   hollow, 
     74   affinage=all] 
     75\end{pspicture*}} 
     76\begin{verbatim} 
     77\psSolid[object=cube, 
     78   fillcolor=cyan, 
     79   affinagecoeff=.5, 
     80   affinagerm, 
     81   fcolor=.5 setfillopacity Yellow, 
     82   hollow, 
     83   affinage=all] 
     84\end{verbatim} 
     85\end{multicols} 
     86 
     87 
  • trunk/doc/par-anneaux.tex

    r2 r45  
    8787\end{pspicture} 
    8888\end{center} 
    89 \begin{verbatim} 
    90 \begin{pspicture}(-5,-6)(5,6) 
    91 \psframe(-5,-4)(5,4) 
    92 \psset[pst-solides3d]{SphericalCoor,viewpoint=50 20 40,% 
    93                       Decran=25,lightsrc=10 20 20} 
     89%% \begin{verbatim} 
     90%% \begin{pspicture}(-5,-6)(5,6) 
     91%% \psframe(-5,-4)(5,4) 
     92%% \psset[pst-solides3d]{SphericalCoor,viewpoint=50 20 40,% 
     93%%                       Decran=25,lightsrc=10 20 20} 
     94%% \psSolid[object=anneau,fillcolor=cyan,h=3,R=8,r=6,ngrid=4,RotX=10](0,0,0) 
     95%% \end{pspicture} 
     96%% %% 
     97%% \begin{pspicture}(-5,-6)(5,5) 
     98%% \psframe(-5,-4)(5,4) 
     99%% \psset[pst-solides3d]{SphericalCoor,viewpoint=50 -20 -40,% 
     100%%        Decran=25,lightsrc=-10 -20 -20} 
     101%% \psSolid[object=anneau,fillcolor=yellow,h=3,R=8,r=6,RotX=90,RotZ=10](0,0,0) 
     102%% \end{pspicture} 
     103%% \end{verbatim} 
     104\begin{verbatim} 
    94105\psSolid[object=anneau,fillcolor=cyan,h=3,R=8,r=6,ngrid=4,RotX=10](0,0,0) 
    95 \end{pspicture} 
    96 %% 
    97 \begin{pspicture}(-5,-6)(5,5) 
    98 \psframe(-5,-4)(5,4) 
    99 \psset[pst-solides3d]{SphericalCoor,viewpoint=50 -20 -40,% 
    100        Decran=25,lightsrc=-10 -20 -20} 
     106%% 
    101107\psSolid[object=anneau,fillcolor=yellow,h=3,R=8,r=6,RotX=90,RotZ=10](0,0,0) 
    102 \end{pspicture} 
    103 \end{verbatim} 
     108\end{verbatim} 
     109 
     110\newpage 
    104111 
    105112\subsection {Un simple anneau à section triangulaire} 
     
    139146\end{center} 
    140147 
    141 \newpage 
     148%\newpage 
    142149 
    143150\subsection {Un anneau variable à section triangulaire} 
     
    201208\end{pspicture} 
    202209\end{center} 
    203 \begin{verbatim} 
    204 \begin{pspicture}(-5,-6)(5,6) 
    205 \psframe(-5,-4)(5,4) 
    206 \psset[pst-solides3d]{SphericalCoor,viewpoint=50 20 40,% 
    207                       Decran=25,lightsrc=10 20 20} 
     210%% \begin{verbatim} 
     211%% \begin{pspicture}(-5,-6)(5,6) 
     212%% \psframe(-5,-4)(5,4) 
     213%% \psset[pst-solides3d]{SphericalCoor,viewpoint=50 20 40,% 
     214%%                       Decran=25,lightsrc=10 20 20} 
     215%% \psSolid[object=anneau,section=\SectionTriangulaire,% 
     216%%          fillcolor=cyan,h=3,R=8,r=4,RotX=10](0,0,0) 
     217%% \end{pspicture} 
     218%% %% 
     219%% \begin{pspicture}(-5,-6)(5,5) 
     220%% \psframe(-5,-4)(5,4) 
     221%% \psset[pst-solides3d]{SphericalCoor,viewpoint=50 -20 -40,% 
     222%%                       Decran=25,lightsrc=-10 -20 -20} 
     223%% \psSolid[object=anneau,section=\SectionTriangulaire,% 
     224%%          fillcolor=yellow,h=3,R=8,r=4,RotX=-90,RotZ=10](0,0,0) 
     225%% \end{pspicture} 
     226%% \end{verbatim} 
     227\begin{verbatim} 
    208228\psSolid[object=anneau,section=\SectionTriangulaire,% 
    209229         fillcolor=cyan,h=3,R=8,r=4,RotX=10](0,0,0) 
    210 \end{pspicture} 
    211 %% 
    212 \begin{pspicture}(-5,-6)(5,5) 
    213 \psframe(-5,-4)(5,4) 
    214 \psset[pst-solides3d]{SphericalCoor,viewpoint=50 -20 -40,% 
    215                       Decran=25,lightsrc=-10 -20 -20} 
     230%% 
    216231\psSolid[object=anneau,section=\SectionTriangulaire,% 
    217232         fillcolor=yellow,h=3,R=8,r=4,RotX=-90,RotZ=10](0,0,0) 
    218 \end{pspicture} 
    219233\end{verbatim} 
    220234 
  • trunk/doc/par-chanfrein.tex

    r30 r45  
    11\section {Chanfreiner un solide} 
     2 
     3\begin{multicols}{3} 
     4\begin{center} 
     5\psset{unit=0.5} 
     6\psset{lightsrc=10 0 10,SphericalCoor=true,viewpoint=50 -20 30,Decran=50} 
     7\begin{pspicture*}(-4,-4)(4,4) 
     8\psframe(-4,-4)(4,4) 
     9\psSolid[object=cube, 
     10   a=5, 
     11   fillcolor=red, 
     12] 
     13\end{pspicture*} 
     14\end{center} 
     15\columnbreak 
     16\begin{center} 
     17\psset{unit=0.5} 
     18\psset{lightsrc=10 0 10,SphericalCoor=true,viewpoint=50 -20 30,Decran=50} 
     19\begin{pspicture*}(-4,-4)(4,4) 
     20\psframe(-4,-4)(4,4) 
     21\psSolid[object=cube, 
     22   a=5, 
     23   fillcolor=red, 
     24   chanfrein, 
     25   chanfreincoeff=.6, 
     26] 
     27\end{pspicture*} 
     28\end{center} 
     29\columnbreak 
     30\begin{verbatim} 
     31\psSolid[object=cube, 
     32   a=5, 
     33   fillcolor=red, 
     34   chanfrein, 
     35   chanfreincoeff=.6, 
     36] 
     37\end{verbatim} 
     38\end{multicols} 
     39 
     40L'option \verb+chanfrein+ permet de chanfreiner un solide. Cette 
     41option utilise l'argument \verb+chanfreincoeff+ (valeur $0,2$ par 
     42défaut) qui indique le rapport $k$ à utiliser ($0<k<1$). Ce rapport 
     43est celui d'une homothétie de cetre le centre de la face considérée. 
     44 
     45\begin{multicols}{3} 
     46\begin{center} 
     47\psset{unit=0.5} 
     48\psset{lightsrc=10 0 10,SphericalCoor=true,viewpoint=50 -20 30,Decran=30} 
     49\begin{pspicture*}(-4,-4)(4,4) 
     50\psframe(-4,-4)(4,4) 
     51\psSolid[object=dodecahedron, 
     52   a=5, 
     53   fillcolor=cyan, 
     54] 
     55\end{pspicture*} 
     56\end{center} 
     57\columnbreak 
     58\begin{center} 
     59\psset{unit=0.5} 
     60\psset{lightsrc=10 0 10,SphericalCoor=true,viewpoint=50 -20 30,Decran=30} 
     61\begin{pspicture*}(-4,-4)(4,4) 
     62\psframe(-4,-4)(4,4) 
     63\psSolid[object=dodecahedron, 
     64   a=5, 
     65   fillcolor=cyan, 
     66   chanfrein, 
     67   chanfreincoeff=.8, 
     68] 
     69\end{pspicture*} 
     70\end{center} 
     71\columnbreak 
     72\begin{verbatim} 
     73\psSolid[object=dodecahedron, 
     74   a=5, 
     75   fillcolor=cyan, 
     76   chanfrein, 
     77   chanfreincoeff=.8, 
     78] 
     79\end{verbatim} 
     80\end{multicols} 
     81 
     82 
     83%\newpage 
  • trunk/doc/par-changements.tex

    r30 r45  
    1010\item L'option \verb+resolution+ de l'objet \verb+courbe+ est 
    1111  remplacée par l'option \verb+ngrid+ 
     12 
     13\item Suppression des arguments \verb+tracelignedeniveau+ et 
     14  associés.  
    1215 
    1316\end {itemize} 
  • trunk/doc/par-courbeR3.tex

    r30 r45  
    1 \section {Courbes de fonctions de $R$ vers $R^3$ -- Tubes
     1\section {Courbes de fonctions de $R$ vers $R^3$
    22 
    33%% \section{Fonctions R --> R\textsuperscript{3}} 
  • trunk/doc/par-definirfacesolideproj.tex

    r2 r45  
    2121 
    2222\begin{multicols}{2} 
    23  
    2423\bgroup 
    2524\psset{unit=0.75} 
    2625\psset{lightsrc=10 0 10,SphericalCoor=true,viewpoint=50 -20 20,Decran=50} 
    27 \begin{pspicture}(-4,-5)(4,5
    28 \psframe(-4,-5)(5,5
     26\begin{pspicture}(-4,-6)(4,6
     27\psframe(-4,-6)(5,6
    2928\psset{solidmemory} 
    30 \defFunction[algebraic]{f}(x){cos(x)}{sin(x)}{} 
     29\defFunction[algebraic]{f1}(x){cos(x)}{sin(x)}{} 
    3130\psSolid[object=grille, 
    3231      RotY=90, 
     
    4140   linecolor=yellow,linewidth=0.1, 
    4241   solidname=A1,no=0, 
    43    function=f
     42   function=f1
    4443\psProjection[object=courbeR2, 
    4544   range=-1.57 pi, 
    4645   linecolor=red,linewidth=0.1, 
    4746   solidname=A1,no=0, 
    48    function=f](0,0,0) 
     47   function=f1](0,0,0) 
    4948\composeSolid 
    5049\end{pspicture} 
     
    5453 
    5554\begin{verbatim} 
     55\psset{lightsrc=10 0 10,SphericalCoor=true,viewpoint=50 -20 20,Decran=50} 
     56\begin{pspicture}(-4,-6)(4,6) 
     57\psframe(-4,-6)(5,6) 
    5658\psset{solidmemory} 
    57 \defFunction[algebraic]{f}(x){cos(x)}{sin(x)}{} 
     59\defFunction[algebraic]{f1}(x){cos(x)}{sin(x)}{} 
    5860\psSolid[object=grille, 
    59       RotY=90,ngrid=2., 
     61      RotY=90, 
     62      ngrid=2., 
    6063      base=-4 4 -4 4, 
    6164      fontsize=20, 
    6265      numfaces=all, 
    63       name=A1](0,0,0) 
     66      name=A1, 
     67      ](0,0,0) 
    6468\psProjection[object=courbeR2, 
    6569   range=-1.57 pi, 
    6670   linecolor=yellow,linewidth=0.1, 
    6771   solidname=A1,no=0, 
    68    function=f
     72   function=f1
    6973\psProjection[object=courbeR2, 
    7074   range=-1.57 pi, 
    7175   linecolor=red,linewidth=0.1, 
    7276   solidname=A1,no=0, 
    73    function=f](0,0,0) 
     77   function=f1](0,0,0) 
    7478\composeSolid 
     79\end{pspicture} 
    7580\end{verbatim} 
     81\end {multicols} 
     82%%  
     83%% \vfill 
    7684 
    77 \end {multicols} 
    78  
  • trunk/doc/par-fusionjps.tex

    r2 r45  
    552552   CS drawsolid**} 
    553553\psPoint(0,0,0){O} 
    554 \psSolid[object=courbe, 
     554\psSolid[object=courbe,r=0, 
    555555   function=F, 
    556556   range=0 360, 
     
    582582   CS drawsolid**} 
    583583\psPoint(0,0,0){O} 
    584 \psSolid[object=courbe, 
     584\psSolid[object=courbe,r=0, 
    585585   function=F, 
    586586   range=0 360, 
  • trunk/doc/par-geode.tex

    r30 r45  
    1 \section {Géodes} 
     1\section {Les géodes et leurs duales} 
     2 
     3\subsection{Présentation mathématique} 
     4 
     5D'excellentes études sur les géodes et leurs duales sont disponibles 
     6sur les sites suivants~:  
     7 
     8\centerline{\url{http://fr.wikipedia.org/wiki/G\%C3\%A9ode}} 
     9 
     10Le paramétrage d'une géode est fidèle aux indications de la page : 
     11 
     12\centerline{\url{http://hypo.ge-dip.etat-ge.ch/www/math/html/amch104.html}} 
     13 
     14<< \textit{On peut définir une géode à partir de deux paramètres : un 
     15  numéro $N$ indiquant le type de polyèdre initial ($N = 3$ pour le 
     16  tétraèdre, $N = 4$ pour l'octaèdre et $N = 5$ pour l'icosaèdre) et 
     17  un nombre $n$ indiquant le nombre de divisions le long de l'arête.}  
     18>> 
     19 
     20L'article \textit{Indexing the Sphere with the Hierarchical Triangular Mesh} 
     21décrit une méthode permettant d'obtenir une représentation des géodes : 
     22 
     23\centerline{\url{http://research.microsoft.com/research/pubs/view.aspx?msr_tr_id=MSR-TR-2005-123}} 
     24 
     25\subsection{Construction avec pst-solides3d} 
     26 
     27Deux approches sont possibles pour construire une géode ou sa duale~: 
     28soit \textsl{via\/} \verb+\codejps+, soit en utilisant les objets de 
     29\verb+\psSolid+.  
     30 
     31Pour une géode, les codes  
     32\begin{verbatim} 
     33\codejps{N n newgeode drawsolid**} 
     34\end{verbatim} 
     35et 
     36\begin{verbatim} 
     37\psSolid[object=geode,ngrid=N n] 
     38\end{verbatim} 
     39sont équivalents. Et pour sa duale, les codes 
     40Pour une géode, les codes  
     41\begin{verbatim} 
     42\codejps{N n newdualgeode drawsolid**} 
     43\end{verbatim} 
     44et 
     45\begin{verbatim} 
     46\psSolid[object=geode,dualreg,ngrid=N n] 
     47\end{verbatim} 
     48sont équivalents. 
     49 
     50 
     51 
     52\subsection{Quelques exemples de géodes et de duales} 
     53 
     54\begin{LTXexample}[pos=t] 
     55\psset{SphericalCoor=true,viewpoint=50 -20 30,Decran=100} 
     56\begin{pspicture}(-3,-3)(3,3) 
     57\psframe(-3,-3)(3,3) 
     58\psSolid[object=geode, 
     59   ngrid=5 0] 
     60%\codejps{5 0 newgeode drawsolid**} 
     61\psframe*(-2,-2.8)(2,-2.2) 
     62\rput(0,-2.5){\textcolor{white}{\textsf{N=5 n=0}}} 
     63\end{pspicture} 
     64\hfill 
     65\begin{pspicture}(-3,-3)(3,3) 
     66\psframe(-3,-3)(3,3) 
     67\psSolid[object=geode, 
     68   dualreg, 
     69   ngrid=5 0] 
     70%\codejps{5 0 newdualgeode drawsolid**} 
     71\psframe*(-2,-2.8)(2,-2.2) 
     72\rput(0,-2.5){\textcolor{white}{\textsf{N=5 n=0}}} 
     73\end{pspicture} 
     74\end{LTXexample} 
     75 
     76\begin{LTXexample}[pos=t] 
     77\psset{SphericalCoor=true,viewpoint=50 -20 30,Decran=100} 
     78\begin{pspicture}(-3,-3)(3,3) 
     79\psframe(-3,-3)(3,3) 
     80\psSolid[object=geode, 
     81   ngrid=5 1] 
     82%\codejps{5 1 newgeode drawsolid**} 
     83\psframe*(-2,-2.8)(2,-2.2) 
     84\rput(0,-2.5){\textcolor{white}{\textsf{N=5 n=1}}} 
     85\end{pspicture} 
     86\hfill 
     87\begin{pspicture}(-3,-3)(3,3) 
     88\psframe(-3,-3)(3,3) 
     89\psSolid[object=geode, 
     90   dualreg, 
     91   ngrid=5 1] 
     92%\codejps{5 1 newdualgeode drawsolid**} 
     93\psframe*(-2,-2.8)(2,-2.2) 
     94\rput(0,-2.5){\textcolor{white}{\textsf{N=5 n=1}}} 
     95\end{pspicture} 
     96\end{LTXexample} 
     97 
     98\subsection{Les paramètres des géodes} 
     99 
     100Le rayon de la sphère est fixé à 1, pour augmenter la taille des 
     101géodes on jouera sur l'un ou l'autre des deux paramètres suivants~:  
     102\begin{itemize} 
     103  \item l'unité : \verb+\psset{unit=2}+ 
     104  \item la position de l'écran : 
     105    \verb+viewpoint=50 -20 30,Decran=100+, si la distance de l'écran 
     106    est deux fois plus grande que la distance  
     107  à laquelle se trouve l'observateur l'échelle de la scène est multipliée par~2. 
     108\end{itemize} 
     109 
     110\encadre{En jps, le paramétrages'effectue pour 
     111  la géode dans le \textbackslash{}codejps\{\textbf{N n newgeode}\} et 
     112  pour sa duale dans \textbackslash{}codejps\{\textbf{N n 
     113    newdualgeode}\}.}  
     114 
     115\encadre{Avec \textbackslash{}psSolid, les paramètres $N$ et $n$ sont transmis 
     116via l'argument \texttt{ngrid}}  
     117 
     118Les options de couleurs et de transparence sont bien sûr possibles avec les géodes. 
     119 
     120\begin{LTXexample}[pos=t] 
     121\psset{unit=2} 
     122\psset{SphericalCoor=true,viewpoint=50 -20 30,Decran=100,linewidth=2pt} 
     123\begin{pspicture}(-3,-3)(3,3) 
     124\psframe*(-3,-3)(3,3) 
     125\codejps{ 
     126/geode42{4 2 newdualgeode} def 
     127.7 setfillopacity 
     128orange 
     129/geodetransparente{ 
     130geode42 
     131dup videsolid 
     132dup (orange) inputcolors 
     133dup [.1 .9] solidputhuecolors} def 
     134geodetransparente 
     135drawsolid**} 
     136\end{pspicture} 
     137\end{LTXexample} 
     138 
     139\subsection{Conseils pour la construction `rapide' des géodes} 
     140 
     141Le temps de calcul des géodes et de leurs duales dépend du nombre de 
     142divisions sur une arête (le deuxième paramètre $n$) et il devient 
     143rapidement très grand, ce qui est vraiment une gêne lorsqu'on est 
     144obligé d'attendre, plus ou moins patiemment, le résultat de la 
     145transformation \Cadre{dvips->ps2pdf}.  
     146 
     147Comme pour tous les autres solides, il est possible de sauvegarder la 
     148structure calculée dans des fichiers externes, ce qui permettra un 
     149gain de temps appréciable si on doit faire des essais de couleurs ou 
     150de point de vue. 
     151 
     152Il faut opérer en deux étapes : 
     153 
     154\subsubsection {Sauvegarde en fichier \texttt{.dat} des paramètres de la géode} 
     155 
     156\begin{verbatim} 
     157\documentclass{article} 
     158\usepackage{pst-solides3d} 
     159\begin{document} 
     160\codejps{ 
     1614 4 newdualgeode 
     162 dup {[.5 .6]} exec solidputhuecolors 
     163(geodedual44) writesolidfile 
     164
     165\end{document} 
     166\end{verbatim} 
     167\Cadre{LaTeX->dvips->GSview (Windows)ou gv (Linux)} 
     168 
     169Cette dernière opération va créer 4 fichiers  : 
     170\begin{itemize} 
     171  \item \texttt{geodedual44.dat} -> les couleurs des faces ; 
     172  \item \texttt{geodedual44.dat} -> la liste des faces ; 
     173  \item \texttt{geodedual44.dat} -> la liste des sommets ; 
     174  \item \texttt{geodedual44-io.dat} -> le nombre de faces et de sommets. 
     175\end{itemize} 
     176 
     177\encadre{Par défaut, sous Windows et Linux, la protection des fichiers 
     178  du disque dur est activée et ne permet donc pas l'écriture sur le 
     179  disque. Pour désactiver cette protection, tout au moins 
     180  temporairement, voici les deux procédures correspondantes :  
     181 
     182\begin{description} 
     183 
     184  \item[Linux : ] le conseil de Jean-Michel Sarlat : le plus 
     185simple est donc d'utiliser ghostscript directement, en console. Comme 
     186il n'y a rien à attendre comme image : 
     187 
     188\$> gs  -dNOSAFER  lissatest.ps quit.ps 
     189  \item[Windows : ] dans le menu \textsf{Options}, l'option \textsf{Protection des fichiers} ne doit pas être cochée. 
     190\end{description}} 
     191 
     192\subsubsection {Lecture des données et dessin de la géode} 
     193 
     194%% \begin{LTXexample}[pos=t] 
     195%% \psset{unit=2} 
     196%% \psset{lightsrc=10 0 10,SphericalCoor=true,viewpoint=50 -20 30,Decran=100} 
     197%% \begin{pspicture}(-2,-2)(2,2) 
     198%% \psframe(-2,-2)(2,2) 
     199%% \psSolid[object=datfile,file=geodedual44] 
     200%% \end{pspicture} 
     201%% \end{LTXexample} 
     202 
     203L'avantage de cette méthode vous paraîtra plus évident en faisant la 
     204comparaison suivante : compilation de deux fichiers qui produisant le 
     205même résultat avec les deux méthodes en concurrence.  
     206 
     207Le fichier \texttt{geode42\_direct.tex} fait le calcul du solide et 
     208son affichage. Le fichier \texttt{geode42\_precalcul.tex} utilise les 
     209fichiers \texttt{.dat} de données pré-calculées par 
     210\texttt{calc\_geode42.tex}.  
     211 
     212\subsection{D'autres exemples} 
     213 
     214\begin{LTXexample}[pos=t] 
     215\psset{SphericalCoor=true,viewpoint=50 -20 30,Decran=100} 
     216\begin{pspicture}(-3,-3)(3,3) 
     217\psframe(-3,-3)(3,3) 
     218\psSolid[object=datfile,file=geode51,deactivatecolor] 
     219\psframe*(-2,-2.8)(2,-2.2) 
     220\rput(0,-2.5){\textcolor{white}{\textsf{N=5 n=1}}} 
     221\end{pspicture} 
     222\hfill 
     223\begin{pspicture}(-3,-3)(3,3) 
     224\psframe(-3,-3)(3,3) 
     225\psSolid[object=datfile,file=geodedual51,deactivatecolor] 
     226\psframe*(-2,-2.8)(2,-2.2) 
     227\rput(0,-2.5){\textcolor{white}{\textsf{N=5 n=1}}} 
     228\end{pspicture} 
     229\end{LTXexample} 
     230 
     231\begin{LTXexample}[pos=t] 
     232\psset{SphericalCoor=true,viewpoint=50 -20 30,Decran=100} 
     233\begin{pspicture}(-3,-3)(3,3) 
     234\psframe(-3,-3)(3,3) 
     235\psSolid[object=datfile,file=geode52,deactivatecolor] 
     236\psframe*(-2,-2.8)(2,-2.2) 
     237\rput(0,-2.5){\textcolor{white}{\textsf{N=5 n=2}}} 
     238\end{pspicture} 
     239\hfill 
     240\begin{pspicture}(-3,-3)(3,3) 
     241\psframe(-3,-3)(3,3) 
     242\psSolid[object=datfile,file=geodedual52,deactivatecolor] 
     243\psframe*(-2,-2.8)(2,-2.2) 
     244\rput(0,-2.5){\textcolor{white}{\textsf{N=5 n=2}}} 
     245\end{pspicture} 
     246\end{LTXexample} 
     247 
     248\begin{LTXexample}[pos=t] 
     249\psset{SphericalCoor=true,viewpoint=50 -20 30,Decran=100} 
     250\begin{pspicture}(-3,-3)(3,3) 
     251\psframe(-3,-3)(3,3) 
     252\psSolid[object=datfile,file=geode53,deactivatecolor] 
     253\psframe*(-2,-2.8)(2,-2.2) 
     254\rput(0,-2.5){\textcolor{white}{\textsf{N=5 n=3}}} 
     255\end{pspicture} 
     256\hfill 
     257\begin{pspicture}(-3,-3)(3,3) 
     258\psframe(-3,-3)(3,3) 
     259\psSolid[object=datfile,file=geodedual53,deactivatecolor] 
     260\psframe*(-2,-2.8)(2,-2.2) 
     261\rput(0,-2.5){\textcolor{white}{\textsf{N=5 n=3}}} 
     262\end{pspicture} 
     263\end{LTXexample} 
  • trunk/doc/par-lignedeniveau.tex

    r30 r45  
    22 
    33Pour chaque objet de type \textsl {solid}, il est possible de tracer 
    4 une ligne de niveau, autrement dit l'intersection du solide considéré 
    5 avec un plan d'équation $z=z_0$. Quatres paramètres pour cette option~: 
     4l'intersection du solide considéré avec un ou plusieurs plans. 
     5 
     6L'argument numérique \Cadre{[intersectiontype=$k$]} (valeur $-1$ par 
     7défaut) détermine s'il y a ou non demande de tracé 
     8d'intersection. Positionné à $0$, il y a tracé des intersections. 
     9 
     10Restent $3$ paramètres à régler~: 
     11 
    612\begin{itemize} 
    713 
    8 \item \verb+tracelignedeniveau+~: booléen. Positionné à \verb+true+, 
    9   il y aura tracé de la ligne de niveau 
     14\item \Cadre{[intersectionplan=\{$eq_1$ ... $eq_n$\}]} 
     15définit la liste des équations $e_i$ des plans de coupe. 
    1016 
    11 \item \verb+hauteurlignedeniveau+~: la valeur $z_0$ définissant le 
    12   plan d'intersection 
     17\item \Cadre{[intersectionlinewidth=$w_1$ ... $w_n$]} 
     18définit la liste des épaisseurs en picas $w_i$ pour chacune des des 
     19coupes. 
    1320 
    14 \item \verb+linewidthlignedeniveau+~: l'épaisseur en picas du tracé de 
    15   la ligne de niveau 
    16  
    17 \item \verb+couleurlignedeniveau+~: la couleur du tracé. 
     21\item \Cadre{[intersectioncolor=$str_1$ ... $str_n$]} 
     22définit la liste des couleurs des différents traits de coupe. 
    1823 
    1924\end{itemize} 
     
    2833\psframe(-5,-4)(5,5) 
    2934\psSolid[object=cube, 
    30    tracelignedeniveau=true
    31    hauteurlignedeniveau=1
    32    linewidthlignedeniveau=3
    33    couleurlignedeniveau=blue
     35   intersectiontype=0
     36   intersectionplan={[1 0 .5 2] [1 0 .5 -1]}
     37   intersectionlinewidth=1 2
     38   intersectioncolor=(bleu) (rouge)
    3439   RotX=20, 
    3540   RotY=90, 
    3641   RotZ=30, 
    3742   a=6, 
    38    ngrid=4, 
    39    base=-4 4 -4 4, 
    40 ](0,0,0) 
     43   action=draw*, 
     44
    4145\end{pspicture*} 
    4246\egroup 
     
    4751\begin{verbatim} 
    4852\psSolid[object=cube, 
    49    tracelignedeniveau=true, 
    50    hauteurlignedeniveau=1, 
    51    linewidthlignedeniveau=3, 
    52    couleurlignedeniveau=blue, 
    53    RotX=20, 
    54    RotY=90, 
    55    RotZ=30, 
     53   intersectiontype=0, 
     54   intersectionplan={[1 0 .5 2] [1 0 .5 -1]}, 
     55   intersectionlinewidth=1 2, 
     56   intersectioncolor=(bleu) (rouge), 
     57   RotX=20,RotY=90,RotZ=30, 
    5658   a=6, 
    57    ngrid=4
    58 ](0,0,0) 
     59   action=draw*
     60] 
    5961\end{verbatim} 
    6062 
    6163\end {multicols} 
    6264 
    63 \llap {\dbend} La syntaxe présentée dans ce paragraphe n'est que 
    64 provisoire. Cette option a été introduite quelques jours avant la 
    65 publication de la version $3.0$, et la syntaxe est vouée à changer dès 
    66 la prochaine version de \verb+pst-solides3d+, afin de permettre le 
    67 tracé de plusieurs lignes de niveau sur un même solide. 
    6865 
  • trunk/doc/par-new.tex

    r2 r45  
    207207\end{verbatim} 
    208208 
    209 \subsection {Exemple 3 : Import de fichiers externes} 
    210  
    211 Il est possible de faire lire les données dans des fichiers 
    212 externes. Dans l'exemple ci-dessous, les fichiers 
    213 \verb+sommets_nefer.dat+ et \verb+faces_nefer.dat+ ont été plcés 
    214 dans le répertoire de compilation. 
     209\subsection {Exemple 3~: Import de fichiers externes} 
     210 
     211\`A partir d'un fichier de description de solide dans un format 
     212particulier (notamment autre que obj ou off), on peut fabriquer 
     213soit-même  un fichier .dat contenant les coordonnées des sommets, et 
     214un autre fichier .dat contenant les tableaux des indices des sommets 
     215de chaque facette. Ces fichiers peuvent alors être utilisés en entrée 
     216pour les paramètres \verb+sommets+ et \verb+faces+ en utilisant 
     217l'instruction postscript \verb+run+. 
     218 
     219Dans l'exemple ci-dessous, les fichiers \verb+sommets_nefer.dat+ 
     220et \verb+faces_nefer.dat+ ont été placés dans le répertoire de 
     221compilation.  
    215222 
    216223\bgroup 
  • trunk/doc/par-section.tex

    r30 r45  
    11\section {Sectionner un solide par un plan} 
     2 
  • trunk/doc/par-solidespredefinis.tex

    r2 r45  
    836836\axesIIID(0,0,0)(4,4,7) 
    837837\defFunction[algebraic]{helice}(t){3*cos(4*t)}{3*sin(4*t)}{t} 
    838 \psSolid[object=courbe, 
     838\psSolid[object=courbe,r=0, 
    839839        range=0 6, 
    840840        linecolor=blue,linewidth=0.1, 
     
    848848\defFunction[algebraic]% 
    849849   {helice}(t){3*cos(4*t)}{3*sin(4*t)}{t} 
    850 \psSolid[object=courbe, 
     850\psSolid[object=courbe,r=0, 
    851851        range=0 6, 
    852852        linecolor=blue,linewidth=0.1, 
  • trunk/doc/par-surfaces.tex

    r2 r45  
    188188   x y mul 4 min -4 max} 
    189189\defFunction{F}(t){t}{4 t div 4 min}{4} 
    190 \psSolid[object=courbe,range=1 4, 
     190\psSolid[object=courbe,range=1 4,r=0, 
    191191   linecolor=red,linewidth=2\pslinewidth, 
    192192   function=F] 
    193193\defFunction{G}(t){t}{4 t div -4 max}{4} 
    194 \psSolid[object=courbe,range=-1 -4, 
     194\psSolid[object=courbe,range=-1 -4,r=0, 
    195195   linecolor=red,linewidth=2\pslinewidth, 
    196196   function=G] 
    197197\defFunction{H}(t){t neg}{4 t div -4 max}{-4} 
    198 \psSolid[object=courbe,range=-1 -4, 
     198\psSolid[object=courbe,range=-1 -4,r=0, 
    199199   linecolor=red,linewidth=2\pslinewidth, 
    200200   function=H] 
  • trunk/doc/par-tronque.tex

    r30 r45  
    11\section {Tronquer les sommets d'un solide} 
     2 
     3L'option \verb+trunc+ permet de tronquer les sommets soit 
     4globalement, soit individuellement. Cette option utilise l'argument 
     5\verb+trunccoeff+ (valeur $0,25$ par défaut) qui indique le rapport 
     6$k$ utiliser pour la troncature ($0<k\leq 0,5$). 
     7% 
     8\begin{itemize} 
     9  \item \texttt{[trunc=all]} tronque tous les sommets ; 
     10  \item \texttt{[trunc=0 1 2 3]} tronque les sommets \texttt{[0,1,2 et 3]} ; 
     11\end{itemize} 
     12% 
     13\begin{multicols}{2} 
     14\psset{unit=0.5} 
     15\setlength{\columnseprule}{1pt} 
     16\centerline{ 
     17\begin{pspicture}(-5,-5)(5,5) 
     18\psframe(-5,-5)(5,5) 
     19\psset{Decran=20} 
     20\psSolid[ 
     21   action=draw, 
     22   object=cube, 
     23   RotZ=30, 
     24   trunccoeff=.2,trunc=all, 
     25]% 
     26\end{pspicture}} 
     27\begin{verbatim} 
     28\psSolid[object=cube, 
     29   action=draw,RotZ=30, 
     30   trunccoeff=.2,trunc=all, 
     31]% 
     32\end{verbatim} 
     33\columnbreak 
     34\centerline{ 
     35\begin{pspicture}(-5,-5)(5,5) 
     36\psframe(-5,-5)(5,5) 
     37\psset{Decran=20} 
     38\psSolid[action=draw, 
     39   object=cube, 
     40   RotZ=30, 
     41   trunccoeff=.2, 
     42   trunc=0 1 2 3, 
     43]% 
     44\end{pspicture}} 
     45\begin{verbatim} 
     46\psSolid[object=cube, 
     47   RotZ=30,action=draw, 
     48   trunccoeff=.2, 
     49   trunc=0 1 2 3, 
     50]% 
     51\end{verbatim} 
     52\end{multicols} 
     53%\newpage 
  • trunk/doc/pst-solides3d-doc.tex

    r30 r45  
    9696%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
    9797\newcommand\Cadre[1]{\psframebox[fillstyle=solid,fillcolor=yellow,linecolor={[cmyk]{0,0,1,0.1}}]{\texttt{#1}}} 
     98\newcommand\encadre[1]{\begin{center} 
     99\psframebox[fillstyle=solid,fillcolor=green!33,linecolor=green,linewidth=0.5mm]{ 
     100  \begin{minipage}{0.95\textwidth} 
     101  {#1} 
     102  \end{minipage}} 
     103  \end{center}} 
    98104 
    99105\newcommand\toptableau{ 
     
    176182\newpage 
    177183 
     184%\input \datapath par-datfile 
     185%\input \datapath par-geode 
     186%% \input \datapath par-tronque 
     187%% \input \datapath par-affinage 
     188%\input \datapath par-courbeR3 
     189%\input \datapath par-vecteur 
    178190%\input \datapath par-plan 
     191%\input \datapath par-surfaces 
     192%\input \datapath par-lignedeniveau 
     193%\input \datapath par-point 
    179194%\end {document} 
    180195 
     
    189204\input \datapath par-solidespredefinis 
    190205\input \datapath par-positionnersolide 
    191 \input \datapath par-grille 
    192 \input \datapath par-plan 
    193 \input \datapath par-vecteur 
    194 \input \datapath par-geode 
    195206 
    196207\chapter{Les options de \textbackslash{}psSolid} 
     
    201212\input \datapath par-enleverfacettes 
    202213\input \datapath par-pointagesommets 
    203 \input \datapath par-tronque 
    204 \input \datapath par-affinage 
    205 \input \datapath par-chanfrein 
    206214 
    207215\input \datapath par-couleurs 
     
    211219\input \datapath par-modes 
    212220\input \datapath par-eclairageponctuel 
     221\input \datapath par-tronque 
     222\input \datapath par-affinage 
     223\input \datapath par-chanfrein 
    213224\input \datapath par-lignedeniveau 
    214225 
     
    216227 
    217228\input \datapath par-datfile 
    218 \input \datapath par-offfile 
    219 \input \datapath par-objfile 
     229%\input \datapath par-offfile 
     230%\input \datapath par-objfile 
     231 
     232\chapter{Quelques objets spécifiques} 
     233\input \datapath par-grille 
     234\input \datapath par-plan 
     235\input \datapath par-vecteur 
     236\input \datapath par-point 
     237\input \datapath par-geode 
    220238 
    221239\chapter{Fabriquer de nouveaux solides} 
     
    225243 
    226244\input \datapath par-courbeR3 
     245\input \datapath par-tube 
    227246\input \datapath par-prisme 
    228247\input \datapath par-new