Retour

par-colorierfacettes.tex

Télécharger le fichier
\section {Colorier les facettes une à une}
 
L'argument \Cadre{[fcol=%
   $i_0$ ($c_0$)~%
   $i_1$~($c_1$)~%
   \dots
   $i_n$~($c_n$)~]},
où les $i_k$ sont des entiers et les $c_k$ des noms de couleurs,
permet de spécifier la couleur de faces particulières. \` A la face
d'incice $i_k$ correspond la couleur $c_k$. L'entier $n$ doit être
inférieur à l'indice maximum des faces du solide considéré.
 
 
 
%% L'option \texttt{[fcol=1 (OliveGreen) 0 (color1) 4 (color2) etc.]}
%% permet de spécifier dans l'ordre :
%% \begin{itemize}
%%   \item le numéro de la facette  de \texttt{0} à \texttt{n-1}, pour \texttt{n} facettes ;
%%   \item la couleur de la facette.
%% \end{itemize}
 
Pour les noms de couleurs $c_k$, il y a $68$~valeurs
prédéfinies (soit tous les noms définis dans le fichier
\verb+color.pro+ au $12$~octobre $2007$). Ces valeurs sont~:
\textsl{GreenYellow},
\textsl{Yellow},
\textsl{Goldenrod},
\textsl{Dandelion},
\textsl{Apricot},
\textsl{Peach},
\textsl{Melon},
\textsl{YellowOrange},
\textsl{Orange},
\textsl{BurntOrange},
\textsl{Bittersweet},
\textsl{RedOrange},
\textsl{Mahogany},
\textsl{Maroon},
\textsl{BrickRed},
\textsl{Red},
\textsl{OrangeRed},
\textsl{RubineRed},
\textsl{WildStrawberry},
\textsl{Salmon},
\textsl{CarnationPink},
\textsl{Magenta},
\textsl{VioletRed},
\textsl{Rhodamine},
\textsl{Mulberry},
\textsl{RedViolet},
\textsl{Fuchsia},
\textsl{Lavender},
\textsl{Thistle},
\textsl{Orchid},
\textsl{DarkOrchid},
\textsl{Purple},
\textsl{Plum},
\textsl{Violet},
\textsl{RoyalPurple},
\textsl{BlueViolet},
\textsl{Periwinkle},
\textsl{CadetBlue},
\textsl{CornflowerBlue},
\textsl{MidnightBlue},
\textsl{NavyBlue},
\textsl{RoyalBlue},
\textsl{Blue},
\textsl{Cerulean},
\textsl{Cyan},
\textsl{ProcessBlue},
\textsl{SkyBlue},
\textsl{Turquoise},
\textsl{TealBlue},
\textsl{Aquamarine},
\textsl{BlueGreen},
\textsl{Emerald},
\textsl{JungleGreen},
\textsl{SeaGreen},
\textsl{Green},
\textsl{ForestGreen},
\textsl{PineGreen},
\textsl{LimeGreen},
\textsl{YellowGreen},
\textsl{SpringGreen},
\textsl{OliveGreen},
\textsl{RawSienna},
\textsl{Sepia},
\textsl{Brown},
\textsl{Tan},
\textsl{Gray},
\textsl{Black},
\textsl{White}.
La liste de ces $68$ couleurs est disponible dans la commande
\verb+\colorfaces+ (voir exemple d'utilisation dans le paragraphe sur
le maillage du cube).
 
\textdbend{} Prévoir dans ce cas que le nombre de faces
$\mathtt{n_1\times n_2}+2\texttt{(faces supérieure et inférieure)}$
soit plus petit que 68~!
 
L'utilisateur peut également définir ses propres couleurs. Il dispose
pour cela de deux méthodes~:
 
\begin{itemize}
 
\item Il utilise l'un des $4$~arguments optionnels \texttt{[color1]},
  \texttt{[color2]}, \texttt{[color3]}, \texttt{[color4]} de
  \verb+\psSolid+, puis il transmet à \verb+fcol+ une paire du type
  $i$~\verb+(color1)+ où $i$ est l'indice de la face considérée. Les
  arguments \texttt{[color1]}, etc\dots s'utilisent de la même façon
  que les arguments \texttt{color} et \texttt{incolor}.\hfill \break
  Par exemple, la commande suivante est une commande valide~:
  \begin{verbatim}
   \psSolid[a=1,object=cube,color1=red!60!yellow!20,fcol=0 (color1)]%
  \end{verbatim}
 
 
\item Il définit ses propres noms de couleurs avec la commande
  \verb+\pstVerb+ puis utilise ces noms avec l'argument
  \texttt{[fcol]}. Par exemple~:
\begin{verbatim}
\pstVerb{/hetre {0.764 0.6 0.204 setrgbcolor} def
         /chene {0.568 0.427 0.086 setrgbcolor} def
         /cheneclair {0.956 0.921 0.65 setrgbcolor} def
         }%
\end{verbatim}
Puis ensuite~:
\begin{verbatim}
fcol=0 (hetre) 1 (chene)  2 (cheneclair)
\end{verbatim}
 
\end{itemize}
 
 
Les $4$~arguments
\verb+color1+,
\verb+color2+,
\verb+color3+,
\verb+color4+ ont des valeurs par défaut~:
\begin{itemize}
    \item \textcolor{cyan!50}{color1=cyan!50}
    \item \textcolor{magenta!60}{color2=magenta!60}
    \item \textcolor{blue!30}{color3=blue!30}
    \item \textcolor{red!50}{color4=red!50}
\end{itemize}
 
\begin{LTXexample}[width=5cm]
\psset{Decran=20,viewpoint=10 5 10,unit=0.5}
\begin{pspicture}(-5,-5)(5,5)
\psframe(-5,-5)(5,5)
\psSolid[
   fcol=0 (Apricot) 1 (Aquamarine)  2 (Bittersweet)
        3 (ForestGreen) 4 (Goldenrod)
        13 (GreenYellow)
        40 (Mulberry),
   object=cube,mode=3]%
\end{pspicture}
\end{LTXexample}
 
\begin{LTXexample}[width=4.9cm]
\psset{Decran=20,viewpoint=10 5 10,unit=0.5}
\begin{pspicture}(-5,-5)(5,5)
\psframe(-5,-5)(5,5)
\psSolid[
   fcol=0 (Apricot) 2 (Lavender) 3 (SkyBlue)  11 (LimeGreen) 12 (OliveGreen),
   object=cylindre,
   h=4,
   ngrid=4 10](0,0,-2)
\end{pspicture}
\end{LTXexample}
 
Le choix des faces à colorier peut se faire en utilisant un code \texttt{PostScript} :
\begin{verbatim}
fcol=48 {i (Black) i 1 add (LimeGreen) i 2 add (Yellow) /i i 3 add store} repeat
\end{verbatim}
qui va colorier alternativement en noir, en vert et en jaune les facettes.
\begin{center}
\begin{LTXexample}[width=6.5cm]
\begin{pspicture}(-3,-3)(3.5,2.5)
\psset{Decran=7.5,viewpoint=10 10 5}
\psframe(-3,-3)(3.5,2.5)
\pstVerb{/iface 0 store}%
\psSolid[
fcol=48 {iface (Black) iface 1 add (LimeGreen) iface 2 add (Yellow) /iface iface 3 add store} repeat,
   r1=4,r0=1,
   object=tore,
   ngrid=8 18,
   RotY=30
  ]%
\end{pspicture}
\end{LTXexample}
\end{center}
Si l'option \textbf{\texttt{hue}} est activée, les facettes du solide
sont coloriées avec le dégradé de couleurs de l'arc-en-ciel.
 
\begin{LTXexample}[width=5.9cm]
\begin{pspicture}(-3,-2.5)(3,2.5)
\psframe(-3,-2.5)(3,2.5)
\psset[pst-solides3d]{viewpoint=50 50 50,Decran=40,lightsrc=50 20 1e2}
\psSolid[r1=5,r0=1,object=tore,ngrid=16 18,hue=0 1]%
\end{pspicture}
\end{LTXexample}