\section {Le prisme} Deux paramètres sont propres au prisme : \begin{itemize} \item La base du prisme peut-être définie librement par les coordonnées des sommets dans le plan $Oxy$. Attention, il est nécessaire que les quatres premiers sommets soient rangés dans le sens trigonométrique par rapport à l'isobarycentre des sommets de cette base ; \item la direction de l'axe du prime par les coordonnées du vecteur directeur. \end{itemize} \subsubsection {Exemple 1 : prisme droit et prisme oblique à section polygonale} \begin{center} \psset{unit=0.5} \psset{lightsrc=10 5 50,viewpoint=50 20 30 rtp2xyz,Decran=50} \begin{minipage}{5cm} \begin{pspicture*}(-6,-4)(6,9) \psframe(-6,-4)(6,9) \psSolid[object=grille,base=-4 4 -4 4,action=draw]% \psSolid[object=prisme,h=6,base=0 1 -1 0 0 -2 1 -1 0 0]% \axesIIID(4,4,6)(4.5,4.5,8) \end{pspicture*} \small\texttt{[base=\psframebox[fillstyle=solid,fillcolor=black]{\textcolor{white}{0 1 -1 0 0 -2 1 -1 0 0}},h=6]} \\ \end{minipage} \hspace{2cm} \begin{minipage}{5cm} \begin{pspicture*}(-6,-4)(6,9) \psframe(-6,-4)(6,9) \psSolid[object=grille,base=-4 4 -4 4,action=draw]% \psSolid[object=prisme,axe=0 1 2,h=8,base=0 -2 1 -1 0 0 0 1 -1 0]% \axesIIID(4,4,4)(4.5,4.5,8) \psPoint(0,4,8){V} \psPoint(0,4,0){Vy} \psPoint(0,0,8){Vz} \uput[l](Vz){8} \uput[ur](Vy){4} \psline[linecolor=blue]{->}(O)(V) \psline[linestyle=dashed](Vz)(V)(Vy) \end{pspicture*} \small\texttt{[base=\psframebox[fillstyle=solid,fillcolor=black]{\textcolor{white}{0 -2 1 -1 0 0 0 1 -1 0}},}% \\ \texttt{ axe=\psframebox[fillstyle=solid,fillcolor=black]{\textcolor{white}{0 4 8}},h=8]} \end{minipage} \end{center} \subsubsection{Exemple 2 : prisme droit à section carrée arrondie} \psset{lightsrc=10 -20 50,viewpoint=50 -20 30 rtp2xyz,Decran=50} \begin{LTXexample}[width=6.5cm] \psset{unit=0.5} \begin{pspicture}(-5,-4)(3,9) \psSolid[object=grille,base=-4 4 -4 4,action=draw] \psSolid[object=prisme,h=6,fillcolor=yellow, base=% 0 10 90 {/i exch def i cos 1 add i sin 1 add } for 90 10 180 {/i exch def i cos 1 sub i sin 1 add} for 180 10 270 {/i exch def i cos 1 sub i sin 1 sub} for 270 10 360 {/i exch def i cos 1 add i sin 1 sub} for] \axesIIID(4,4,6)(6,6,8) \end{pspicture} \end{LTXexample} \newpage \subsubsection{Exemple 3 : prisme à section elliptique} \begin{LTXexample}[width=6.5cm] \psset{unit=0.5} \psset{lightsrc=10 20 30,viewpoint=50 20 25 rtp2xyz,Decran=50} \begin{pspicture}(-6,-5)(6,12) \psSolid[object=grille,base=-6 6 -4 4,action=draw] \defFunction{F1}(t){t cos 4 mul}{t sin 2 mul}{} \psSolid[object=prisme,h=8,fillcolor=green!20, base=0 350 {F1} CourbeR2+]% \defFunction{F2}(t){t cos 4 mul}{t sin 2 mul}{8} \psSolid[object=courbe,r=0, function=F2,range=0 360, linewidth=2\pslinewidth, linecolor=green]% \axesIIID(6,4,8)(8,6,10) \end{pspicture} \end{LTXexample} \subsubsection{Exemple 4 : prisme droit creux à section astroïdale} \begin{LTXexample}[width=6.5cm] \psset{unit=0.5} \psset{lightsrc=10 -20 50,viewpoint=50 -20 30 rtp2xyz,Decran=50} \begin{pspicture}(-5,-4)(6,9) \defFunction{F1}(t){3 t cos 3 exp mul}{3 t sin 3 exp mul}{} \psSolid[object=grille,base=-4 4 -4 4,action=draw]% \psSolid[object=prismecreux,h=8,fillcolor=red!50, resolution=36, base=0 350 {F1} CourbeR2+ ]% \end{pspicture} \end{LTXexample} \newpage \subsubsection{Exemple 5 : une gouttière, section semi-circulaire à plat} \begin{LTXexample}[width=7cm] \psset{unit=0.35} \psset{lightsrc=10 20 30,viewpoint=50 30 25 rtp2xyz,Decran=50} \begin{pspicture}(-10,-5)(6,10) \defFunction[algebraic]{F1}(t) {3*cos(t)}{3*sin(t)}{} \defFunction[algebraic]{G1}(t) {2.5*cos(t)}{2.5*sin(t)}{} \psSolid[object=grille, base=-6 6 -6 6,action=draw]% \psSolid[object=prisme,h=12, fillcolor=blue!30,RotX=-90, resolution=19, base=0 pi {F1} CourbeR2+ pi 0 {G1} CourbeR2+](0,-6,3) \axesIIID(6,6,2)(8,8,8) \end{pspicture} \end{LTXexample} On dessine d'abord la face extérieure (demi-cercle de rayon 3~cm), en tournant dans le sens trigonométrique~: \texttt{0 pi {F} CourbeR2+} Puis la face intérieure (demi-cercle de rayon 2{,}5~cm), en tournant cette fois dans le sens inverse du sens trigonométrique : \texttt{pi 0 {G} CourbeR2+} On fait tourner le solide de $-90^{\mathrm{o}}$ en le plaçant au point $(0,-6,3)$. \textdbend{} Comme on a utilisé l'option \verb+algebraic+ pour la définition des fontions $F$ et $G$, les fonctions $\sin $ et $\cos $ utilisées fonctionnent en radian. \subsubsection{Le paramètre \texttt {decal}} Nous avons écrit plus haut qu'il était nécessaire que les quatres premiers sommets soient rangés dans le sens trigonométrique par rapport à l'isobarycentre des sommets de cette base. En fait, c'est la règle du comportement par défaut car la règle véritable est celle-ci~: Si la base comporte $n+1$ sommets $(s_0, s_1, s_2, \dots , s_{n-1}, s_n)$, et si $G$ est l'isobarycentre des sommets, alors $(s_0, s_1)$ d'une part, et $(s_{n-1}, s_n)$ d'autre part, doivent être rangés dans le sens trigonométrique par rapport à $G$. Cette règle induit des contraintes sur le codage de la base du prisme, rendant parfois ce dernier inesthétique. C'est pourquoi nous avons introduit l'argument \texttt{[decal]} (valeur par défaut$=-2$) qui permet de considérer la liste des sommets de la base comme une file circulaire que l'on décalera au besoin. Un exemple~: comportement par défaut avec $decal=-2$~:\par \begin{LTXexample}[width=6cm] \psset{lightsrc=10 20 30,viewpoint=50 80 35 rtp2xyz,Decran=50} \psset{unit=0.5} \begin{pspicture}(-6,-4)(6,7) \defFunction{Fonction}(t){t cos 3 mul}{t sin 3 mul}{} \psSolid[object=prisme,h=8, fillcolor=yellow,RotX=-90, num=0 1 2 3 4 5 6, show=0 1 2 3 4 5 6, resolution=7, base=0 180 {Fonction} CourbeR2+ ](0,-10,0) \end{pspicture} \end{LTXexample} On voit que le sommet d'indice~$0$ n'est pas là où on s'attendrait à le trouver. Recommençons, mais cette fois-ci en supprimant le décalage~:\par \begin{LTXexample}[width=6cm] \psset{unit=0.5} \psset{lightsrc=10 20 30,viewpoint=50 80 35 rtp2xyz,Decran=50} \begin{pspicture}(-6,-4)(6,7) \defFunction{Fonction}(t){t cos 3 mul}{t sin 3 mul}{} \psSolid[object=prisme,h=8, fillcolor=yellow,RotX=-90, decal=0, num=0 1 2 3 4 5 6, show=0 1 2 3 4 5 6, resolution=7, base=0 180 {Fonction} CourbeR2+ ](0,-10,0) \end{pspicture} \end{LTXexample} \endinput