Changeset 70

Show
Ignore:
Timestamp:
06/26/08 22:37:48 (7 months ago)
Author:
jpv
Message:

Correction bug de séparation cylindre genéralisé

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/doc/par-axes3D.tex

    r66 r70  
    77points $(x_2,0,0)$, $(0,y_2,0)$ et $(0,0,z_2)$. 
    88 
    9 Les options sont la couleur, l'épaisseur du trait, ainsi que les caractéristiques des flèches. 
     9Les options sont les suivantes : 
     10\begin{itemize} 
     11    \item toutes les options de couleur, d'épaisseur du trait, ainsi que des caractéristiques des flèches. 
     12    \item \Cadre{labelsep=valeur} qui permet de placer à la distance souhaitée de l'extrémité de la flèche, l'étiquette de l'axe, sa valeur par défaut est \Cadre{labelsep=5pt}, il s'agit de la distance réelle en trois dimensions et non sur l'écran. 
     13    \item Le choix des étiquettes(\textit{labels}) de chaque axe avec l'option \Cadre{axisnames={a,b,c}}, avec par défaut \Cadre{axisnames={x,y,z}}. 
     14    \item La possibilité de spécifier, le style de ces étiquettes avec l'option : \Cadre{axisemph={\boldmath\Large\color{red}}}, par défaut il n'y a pas de style prédéfini, c'est-à-dire que si l'on ne précise rien on aura \Cadre{$x,y,z$}. 
     15    \item \Cadre{showOrigin} est un booléen, \texttt{true} par défaut, s'il est positionné à \Cadre{showOrigin=false}  les pointillés ne seront plus tracés depuis l'origine. 
     16    \item \Cadre{mathLabel} est un booléen, \texttt{true} par défaut, qui dans ce cas écrit les étiquettes en mode mathématique, positionné à \Cadre{mathLabel=false} on passe dans le mode usuel. 
     17\end{itemize} 
     18\encadre{Les étiquettes sont placées aux extrémités des axes dans leur prolongement.} 
     19 
     20\begin{LTXexample}[width=5cm] 
     21\begin{pspicture}(-2,-2)(3,3) 
     22\psset{viewpoint=100 30 20,Decran=100} 
     23\psframe(-2,-2)(3,3) 
     24\psSolid[object=cube,a=2, 
     25        action=draw*, 
     26        fillcolor=magenta!20] 
     27\axesIIID[showOrigin=false](1,1,1)(3,2,2.5) 
     28\end{pspicture} 
     29\end{LTXexample} 
     30 
     31\begin{LTXexample}[width=5cm] 
     32\begin{pspicture}(-2,-1)(3,4) 
     33\psset{viewpoint=100 45 20,Decran=100} 
     34\psframe(-2,-1)(3,4) 
     35\psSolid[object=cylindre,h=2,r=1, 
     36        action=draw*,mode=4, 
     37        fillcolor=green!20] 
     38\axesIIID[linewidth=1pt,linecolor=red,arrowsize=5pt, 
     39          arrowinset=0,axisnames={a,b,c}, 
     40          axisemph={\boldmath\Large\color{red}}, 
     41          labelsep=10pt] 
     42         (1,1,2)(2,2,3) 
     43\end{pspicture} 
     44\end{LTXexample} 
  • trunk/doc/par-parametres.tex

    r66 r70  
    9494deactivatecolor&false&désactive la gestion des couleurs par PSTricks\\ \hline 
    9595transform&&formule(s) à appliquer aux sommets d'un solide pour le transformer\\ \hline 
     96axisnames&\{x,y,z\}& étiquettes des axes en 3D\\ \hline 
     97axisemph&&style des étiquettes des axes en 3D\\ \hline 
     98showOrigin&true&trace les axes à partir de l'origine ou non si false\\ \hline 
     99mathLabel&true&écriture des étiquettes des axes en mode mathématique ou non\\ \hline 
    96100\end{longtable} 
    97101 
  • trunk/doc/pst-solides3d-doc.tex

    r66 r70  
    176176 Jürgen \textsc{Gilg}\url{<gilg@acrotex.net>}, 
    177177 Jean-Michel \textsc{Sarlat}\url{<jm.sarlat@gmail.com>}.}} 
    178 \date{24 juin 2\,008} 
     178\date{26 juin 2\,008} 
    179179\begin{document} 
    180180\maketitle 
     
    215215\input \datapath par-choixpointdevue 
    216216\input \datapath par-axes3D 
     217\newpage 
    217218\input \datapath par-solidespredefinis 
    218219\input \datapath par-positionnersolide 
  • trunk/solides.pro

    r67 r70  
    11%! 
    22% PostScript prologue for pst-solides3d.tex. 
    3 % Version 3.37, 2008/06/25 
     3% Version 3.38, 2008/06/26 
    44% 
    55%% COPYRIGHT 2008 by Jean-Paul Vignault 
     
    10631063 
    10641064%%%%% ### projscene ### 
    1065 %% syntaxe : plantype bprojscene ... eprojscene 
     1065%% syntaxe : plantype bool bprojscene ... eprojscene 
    10661066/bprojscene { 
    1067106710 dict begin 
     
    10771077   /savefill {SolidesDict /fill get exec} def 
    10781078   /fill {l@pl@n mybool projpath savefill} def 
     1079   /masque {} def 
     1080%   l@pl@n plangetrange aload pop  
     1081%   setyrange setxrange 
    10791082} def 
    10801083/eprojscene { 
     
    14791482   /startest {true} def 
    14801483   Cercle 
     1484end 
     1485} def 
     1486 
     1487%%%%% ### drawvecteur ### 
     1488%% syntaxe : A B drawvecteur 
     1489/drawvecteur { 
     14902 dict begin 
     1491   /B defpoint 
     1492   /A defpoint 
     1493   [A B] ligne 
     1494   A B oldarrow 
    14811495end 
    14821496} def 
     
    33233337         candidat 1 get isarray and 
    33243338         candidat 2 get isarray and 
    3325          candidat 3 get isarray and 
     3339         candidat 2 get isarray and 
     3340         /IO candidat 3 get def 
     3341         IO length 4 eq and 
     3342         IO 0 get isnum and 
     3343         IO 1 get isnum and 
     3344         IO 2 get isnum and 
     3345         IO 3 get isnum and 
    33263346      } { 
    33273347         false 
     
    37903810   [ 
    37913811      0 0 
    3792       alpha cos r mul alpha sin r mul 
     3812%      alpha cos r mul alpha sin r mul 
    37933813      alpha beta {1 dict begin /t exch def t cos r mul t sin r mul end} CourbeR2+ 
    37943814   ] 0 h [nbetages] newprismedroit 
     
    58275847%%%%     operations sur des solides particuliers        %%%% 
    58285848%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
     5849 
     5850/piedist { 
     58514 dict begin 
     5852   /mypie exch def 
     5853   mypie 0 solidgetface length /n exch def 
     5854   mypie n 2 idiv solidgetsommet /A defpoint3d 
     5855   mypie n 2 idiv 1 add solidgetsommet /B defpoint3d 
     5856   A B milieu3d GetCamPos distance3d 
     5857end 
     5858} def 
     5859 
     5860/sortpieset { 
     58615 dict begin 
     5862   dup issolid { 
     5863      ] 
     5864   } if 
     5865   /table exch def 
     5866   [ 
     5867      0 1 table length 1 sub { 
     5868         /i exch def 
     5869         table i get piedist 
     5870      } for 
     5871   ] 
     5872   doublequicksort pop reverse 
     5873   /result exch def 
     5874   [ 
     5875      0 1 result length 1 sub { 
     5876         /i exch def 
     5877         table result i get get  
     5878      } for 
     5879   ] 
     5880end 
     5881} def 
     5882 
     5883/drawpieset { 
     5884   sortpieset {drawsolid**} apply 
     5885} def 
    58295886 
    58305887%%%%% ### solidchanfreine ### 
     
    77717828       
    77727829      S F generesolid 
    7773       dup videsolid 
     7830%      dup videsolid 
    77747831   } { 
    77757832      %% cylindre de revolution 
     
    79918048 
    79928049      S F generesolid 
    7993       dup videsolid 
     8050%      dup videsolid 
    79948051   } { 
    79958052      %% cylindre de revolution 
     
    92189275 
    92199276/pst-cylindre { 
     9277   /save-cylinderhollow solidhollow def 
    92209278   tx@Dict /function known { 
    92219279      range aload pop function cvx {axe} h ngrid newcylindre 
     9280      tx@Dict /function undef 
     9281      /solidhollow true def 
    92229282   } { 
    92239283      % rayon 
     
    92359295   } ifelse 
    92369296   gere_pstricks_opt 
     9297   /solidhollow save-cylinderhollow store 
    92379298} def 
    92389299 
     
    92529313 
    92539314/pst-cone { 
     9315   /save-conehollow solidhollow def 
    92549316   tx@Dict /function known { 
    92559317      range aload pop function cvx {origin} ngrid newcone 
     9318      tx@Dict /function undef 
     9319      /solidhollow true def 
    92569320   } { 
    92579321      % rayon 
     
    92709334   } ifelse 
    92719335   gere_pstricks_opt 
     9336   /solidhollow save-conehollow store 
    92729337} def 
    92739338 
     
    97039768/proj-pst-chemin { 
    97049769   solidlinewidth setlinewidth 
     9770   1 dict begin 
    97059771   newpath 
     9772      /cercle {cercle_} def 
    97069773      path 
    97079774      linecolor 
    97089775      gere_pstricks_proj_opt 
     9776   end 
    97099777} def 
    97109778 
     
    97289796   solidlinewidth setlinewidth 
    97299797%   newpath 
    9730       linecolor 
    9731       xorigine yorigine point_ 
    9732 %      gere_pstricks_proj_opt 
    9733 %   linecolor 
    9734    planprojpst projectionsifacevisible projpath 
     9798   linecolor 
     9799   xorigine yorigine point_ 
     9800   gere_pstricks_proj_opt 
    97359801   stroke 
     9802} def 
     9803 
     9804/proj-pst-vecteur { 
     9805   planprojpst bprojscene 
     9806   solidlinewidth setlinewidth 
     9807   linestyle 
     9808   linecolor 
     9809   xorigine yorigine 2 copy origin addv drawvecteur 
     9810   eprojscene 
     9811%   newpath 
    97369812} def 
    97379813