push artificiel
[mp-solid.git] / doc / Presentation.tex
1 \chapter{Présentation}
2 \begin{flushleft}
3 {\em
4 Un mathématicien n'a pas parfaitement compris ses propres travaux tant
5 qu'il ne les a pas clarifiés au point de pouvoir aller dans la rue les
6 expliquer à la première personne venue.}
7 \par\hfill {\sc Joseph-Louis Lagrange}
8 \end{flushleft}
9 \begin{Danger}
10 Avant toutes choses, je tiens particulièrement à remercier
11 chaleureusement les auteurs de \texttt{pst-solides3d} pour leur aide
12 et leur accord quant à l'utilisation de la terminologie et de
13 nombreux exemples de leur documentation.
14 \end{Danger}
15 \section{Constitution du package}
16 \begin{itemize}
17 \item Fichier \texttt{mp-solid.mp}.
18 \item Documentation et exemples : \texttt{doc.tgz(pdf)}.
19 \end{itemize}
20 Ce package est disponible à l'url
21 \url{http://syracuse.eu.org/syracuse/...}.
22 \section{Introduction}
23 \'Emerveillé, comme tout à chacun, par les prouesses de
24 \texttt{pst-solides3d}, je me suis posé la question de savoir si cela
25 était réalisable avec \MP. Malheureuse question, car pas mal de temps
26 il m'a fallu\footnote{Yoda est avec moi !} pour aboutir à cette
27 première version\ldots Temps de codage, d'apprentissage, de révision
28 de mes connaissances mathématiques,\ldots ont été très chronophage.\\
29 Mes sources d'inspiration ont été \verb!pst-solides3d! (en parcourant
30 le code), les auteurs ({\em merveilleux auteurs}) de ce package et le
31 livre \og Graphisme scientifique sur ordinateur\fg\ de Raymond {\sc Dony}.
32 \section{Le package}
33 \texttt{mp-solid} contient les macros nécessaires pour les tracés
34 demandés. Certaines macros ont été reprises de
35 \texttt{geometriesyr16}\footnote{Package dédié à la
36 géométrie. Disponible à \url{melusine.eu.org/syracuse/poulecl/geometriesyr16/}.},
37 de \texttt{donymodule}\footnote{Package complémentaire de
38 \texttt{geometriesyr16} pour la gestion des figures géométriques de
39 l'espace. Disponible en téléchargeant \texttt{geometriesyr16}.}. Je
40 dois remercier également Anthony {\sc Phan} et son package
41 \texttt{m3D}\footnote{Disponible à l'adresse \url{http://www-math.univ-poitiers.fr/~phan/m3Dplain.html}} pour m'avoir
42 permis de clarifier certaines conventions dans les représentations
43 spatiales\ldots
44 \par \texttt{mp-solid} {\em semble} être moins gourmand en ressources
45 \MP\ que \verb!mp-geo!\footnote{Package permettant le tracé de
46 représentations terrestres spatiales ou planes disponibles à
47 l'adresse \begin{center}
48 \url{http://syracuse-dev.org/mpst-globe/browser/trunk/mp-geo}
49 \end{center}
50 }; cependant, pour
51 certains exemples, le temps de compilation est assez
52 long\footnote{Dans la mesure du possible, les temps de compilation
53 importants seront indiqués.}.
54 \section{Généralités}
55 \subsection{Le choix du point de vue}
56 \begin{figure}[h]
57 \centering
58 \includegraphics{figures/choixvue1.pdf}
59 \caption{Position du point de vue.}
60 \end{figure}
61 Les coordonnées de l'objet, ici le cube violet, sont données sous
62 forme de \texttt{color} dans le repère $Oxyz$. Les coordonnées du
63 point de vue $V$, sont données dans ce même repère en coordonnées
64 sphériques sous la forme
65 \begin{center}
66 \macro{\texttt{Initialisation(5,30,20,50)}}
67 \end{center}
68 5 étant le rayon de la sphère de centre $(0,0,0)$, $\phi=30$\degres\ et
69 $\theta=20$\degres.
70 \\L'écran est placé perpendiculairement à la direction $\vecteur{OV}$,
71 à une distance de $V$ égale à 50.
72 \begin{Danger}
73 Le rayon de la sphère n'est, {\em mathématiquement}, pas
74 important. En effet, la projection choisie est une projection
75 perspective. Seuls importent $\phi$, $\theta$ et la distance à
76 l'écran.
77 \par Par contre, il a un intérêt de précision dans les calculs de
78 \MP; c'est pour cela que bien souvent une valeur de 500 voire de
79 1\,000 sera choisie.
80 \end{Danger}
81 Les axes peuvent être représentés {\em en traits d'axes} par la macro
82 \macro{\verb!TraceAxesD(xmax,ymax,zmax)!} : les axes $[Ox)$, $[Oy)$,
83 $[Oz)$ seront représenté de l'origine respectivement jusqu'au point
84 $(\verb!xmax!;0;0)$, $(0;\verb!ymax!;0)$, $(0;0;\verb!zmax!)$.
85 \\Il existe une autre possibilité : \macro{\verb!TraceAxes!} qui trace
86 les axes en traits d'axes colorés mais avec $\verb!xmax!=\verb!ymax!=\verb!zmax!=5$.
87 \subsection{Les couleurs}
88 Pour la représentation des solides, il y a deux façons de définir la
89 coloration des faces :
90 \begin{itemize}
91 \item soit avec les paramètres de type \texttt{color} :
92 \param{\texttt{incolor}} (couleur intérieure) et
93 \param{\texttt{outcolor}} (couleur extérieure);
94 \item soit avec les paramètres \param{\texttt{arcenciel}} (de type
95 \texttt{boolean}) et \texttt{incolor}.
96 \end{itemize}
97 \begin{figure}[h]
98 \centering
99 \subfigure[\texttt{outcolor} et
100 \texttt{incolor}]{\includegraphics[scale=0.6]{figures/couleurs1.pdf}}\hfill\subfigure[\texttt{arcenciel} et \texttt{incolor}]{\includegraphics[scale=0.6]{figures/couleurs2.pdf}}
101 \caption{Exemples d'utilisation de \texttt{incolor}, \texttt{outcolor} et \texttt{arcenciel}.}
102 \end{figure}
103 Pour colorer, on dispose des espaces de couleur suivants :
104 \begin{itemize}
105 \item l'espace RGB (classique de \MP);
106 \item l'espace HSV.\par
107 \begin{figure}[h]
108 \centering
109 \includegraphics{figures/hsv1.pdf}
110 \caption{Une représentation de l'espace de couleurs HSV.}
111 \end{figure}
112 Ce dernier type n'étant pas implanté dans \MP, il
113 s'utilise de la façon suivante\footnote{Les formules de conversions
114 ont été obtenues à l'adresse \url{http://en.wikipedia.org/wiki/HSL_color_space}.}:
115 \begin{center}
116 \macro{\verb!Hsvtorgb(a,s,l)!}
117 \end{center}
118\param{\texttt{a}} est la teinte donnée sous la forme d'un angle compris
119 entre 0\degres\ et 360\degres, \param{\texttt{s}} la saturation
120 (entre 0 (non saturée) et 1 (saturée)), \param{\texttt{v}} la
121 valeur (qui peut se confondre avec la luminosité) (entre 0 et
122 1). Par défaut, la saturation est égale à 0.45 et la luminosité à
123 1. On peut les modifier à l'aide des paramètres numériques
124 \param{\texttt{satu}} et \param{\texttt{lum}}. Par exemple, on
125 peut obtenir les dégradés suivants :
126 \begin{figure}[ht]
127 \centering
128 \subfigure[degradé de rouge à vert dans l'espace
129 RGB]{\includegraphics[scale=0.5]{figures/grillergb1.pdf}}\hfill\subfigure[degradé de 0\degres\ à
130 360\degres\ dans l'espace HSV (saturation et luminosité
131 maximale)]{\includegraphics[scale=0.5]{figures/grillehsv1.pdf}}
132 \hfill\subfigure[degradé de 0\degres\ à
133 360\degres\ dans l'espace HSV (saturation à 0.5 et luminosité
134 maximale)]{\includegraphics[scale=0.5]{figures/grillehsv11.pdf}}
135 \caption{Dégradés dans les espaces de couleurs}
136 \end{figure}
137 \end{itemize}
138 \subsection{Gestion des ombres}
139 La lumière est gérée avec la méthode de {\sc Lambert}. Par défaut, la
140 gestion de la lumière est active. On peut la désactiver grâce au
141 booléen \param{\texttt{eclairage}}.\\Il n'y a pas de position par
142 défaut de la lumière, {\em il ne faut donc pas oublier de la
143 positionner}.\\L'intensité lumineuse se règle avec le
144 paramètre numérique \param{\texttt{intensite}}. Par défaut, elle est
145 réglée à 2.
146 \begin{figure}[h]
147 \centering
148 \subfigure[Sans
149 lumière]{\includegraphics[scale=0.7]{figures/noeud43.pdf}}\hfill\subfigure[Avec lumière]{\includegraphics[scale=0.7]{figures/noeud44.pdf}}
150 \caption{Utilisation ou non de la lumière}
151 \end{figure}
152 \par Voici trois exemples où la source lumineuse se déplace sur l'axe $z$ :
153 $(0;0;0)$ puis $(0;0;3)$ et enfin $(0;0;10)$.
154 \begin{figure}[ht]
155 \centering
156 \subfigure[Position 1]{\includegraphics[scale=0.35]{figures/source1.pdf}}\hfill\subfigure[Position 2]{\includegraphics[scale=0.35]{figures/source2.pdf}}\hfill\subfigure[Position 3]{\includegraphics[scale=0.35]{figures/source3.pdf}}
157 \caption{Diverses positions de la source lumineuse}
158 \end{figure}

Licence Creative Commons Les fichiers de Syracuse sont mis à disposition (sauf mention contraire) selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.