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
}
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.
15 \section{Constitution du package
}
17 \item Fichier
\texttt{mp-solid.mp
}.
18 \item Documentation et exemples :
\texttt{doc.tgz(pdf)
}.
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
}.
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
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
}
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.
}.
55 \subsection{Le choix du point de vue
}
58 \includegraphics{figures/choixvue1.pdf
}
59 \caption{Position du point de vue.
}
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
66 \macro{\texttt{Initialisation(
5,
30,
20,
50)
}}
68 5 étant le rayon de la sphère de centre $(
0,
0,
0)$, $
\phi=
30$
\degres\ et
70 \
\L'écran est placé perpendiculairement à la direction $
\vecteur{OV
}$,
71 à une distance de $V$ égale à
50.
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 à
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
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 :
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
}.
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
}.
}
103 Pour colorer, on dispose des espaces de couleur suivants :
105 \item l'espace RGB (classique de
\MP);
106 \item l'espace HSV.
\par
109 \includegraphics{figures/hsv1.pdf
}
110 \caption{Une représentation de l'espace de couleurs HSV.
}
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
}.
}:
116 \macro{\verb!Hsvtorgb(a,s,l)!
}
118 où
\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 :
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
}
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
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
}
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)$.
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
}