3 Deux paramètres sont propres au prisme :
5 \item La base du prisme peut-être définie librement par les
6 coordonnées des sommets dans le plan $Oxy$. Attention, il est
7 nécessaire que les quatres premiers sommets soient rangés dans le
8 sens trigonométrique par rapport à l'isobarycentre des sommets de
10 \item la direction de l'axe du prime par les coordonnées du vecteur
14 \subsubsection {Exemple
1 : prisme droit et prisme oblique à section
19 \psset{lightsrc=
10 5 50,viewpoint=
50 20 30 rtp2xyz,Decran=
50}
21 \begin{pspicture*
}(-
4,-
4)(
6,
9)
23 \psSolid[object=grille,base=-
4 4 -
4 4,action=draw
]%
24 \psSolid[object=prisme,h=
6,base=
0 1 -
1 0 0 -
2 1 -
1 0 0]%
25 \axesIIID(
4,
4,
6)(
4.5,
4.5,
8)
28 \small\texttt{[base=
\psframebox[fillstyle=solid,fillcolor=black
]{\textcolor{white
}{0 1 -
1 0 0 -
2 1 -
1 0 0}},h=
6]}
33 \begin{pspicture*
}(-
4,-
4)(
6,
9)
35 \psSolid[object=grille,base=-
4 4 -
4 4,action=draw
]%
36 \psSolid[object=prisme,axe=
0 1 2,h=
8,base=
0 -
2 1 -
1 0 0 0 1 -
1 0]%
37 \axesIIID(
4,
4,
4)(
4.5,
4.5,
8)
43 \psline[linecolor=blue
]{->
}(O)(V)
44 \psline[linestyle=dashed
](Vz)(V)(Vy)
47 \small\texttt{[base=
\psframebox[fillstyle=solid,fillcolor=black
]{\textcolor{white
}{0 -
2 1 -
1 0 0 0 1 -
1 0}},
}%
49 \texttt{ axe=
\psframebox[fillstyle=solid,fillcolor=black
]{\textcolor{white
}{0 4 8}},h=
8]}
53 \subsubsection{Exemple
2 : prisme droit à section carrée arrondie
}
57 \psset{lightsrc=
10 -
20 50,viewpoint=
50 -
20 30 rtp2xyz,Decran=
50}
58 \begin{pspicture
}(-
5,-
4)(
3,
9)
60 \psSolid[object=grille,base=-
4 4 -
4 4,action=draw
]%
61 \psSolid[object=prisme,h=
6,fillcolor=yellow,
%
63 0 10 90 {/i exch def i cos
1 add i sin
1 add
} for
65 90 10 180 {/i exch def i cos
1 sub i sin
1 add
} for
67 180 10 270 {/i exch def i cos
1 sub i sin
1 sub
} for
69 270 10 360 {/i exch def i cos
1 add i sin
1 sub
} for
71 \axesIIID(
4,
4,
6)(
6,
6,
8)
75 \begin{minipage
}{10cm
}
78 \psSolid[object=grille,base=-
4 4 -
4 4,action=draw
]%
80 object=prisme,h=
6,fillcolor=yellow,
%
82 0 10 90 {/i exch def i cos
1 add i sin
1 add
} for
84 90 10 180 {/i exch def i cos
1 sub i sin
1 add
} for
86 180 10 270 {/i exch def i cos
1 sub i sin
1 sub
} for
88 270 10 360 {/i exch def i cos
1 add i sin
1 sub
} for
90 \axesIIID(
4,
4,
6)(
6,
6,
8)
95 \subsubsection{Exemple
3 : prisme droit creux à section astroïdale
}
97 \begin{minipage
}{5.5cm
}
99 \psset{lightsrc=
10 -
20 50,viewpoint=
50 -
20 30 rtp2xyz,Decran=
50}
100 \begin{pspicture*
}(-
5,-
4)(
6,
9)
102 \defFunction{F
}(t)
{3 t cos
3 exp mul
}{3 t sin
3 exp mul
}{}
103 \psSolid[object=grille,base=-
4 4 -
4 4,action=draw
]%
104 \psSolid[object=prismecreux,h=
8,fillcolor=red!
50,
106 base=
0 350 {F
} CourbeR2+
111 \begin{minipage
}{9cm
}
115 {3 t cos
3 exp mul
}{3 t sin
3 exp mul
}{}
116 \psSolid[object=grille,base=-
4 4 -
4 4,action=draw
]%
117 \psSolid[object=prismecreux,h=
8,fillcolor=red!
50,
119 base=
0 350 {F
} CourbeR2+
124 \subsubsection{Exemple
4 : prisme à section elliptique
}
126 \begin{minipage
}{5cm
}
128 \psset{lightsrc=
10 20 30,viewpoint=
50 20 25 rtp2xyz,Decran=
50}
129 \begin{pspicture
}(-
6,-
3)(
4,
10)
130 %\psframe(-6,-3)(6,8)
131 \defFunction{F
}(t)
{t cos
4 mul
}{t sin
2 mul
}{}
132 \psSolid[object=grille,base=-
6 6 -
4 4,action=draw
]%
133 \psSolid[object=prisme,h=
8,fillcolor=green!
20,
%
134 base=
0 350 {F
} CourbeR2+
]%
135 \defFunction{F
}(t)
{t cos
4 mul
}{t sin
2 mul
}{8}
136 \psSolid[object=courbe,
138 function=F,range=
0 360,
139 linewidth=
2\pslinewidth,
142 %% \parametricplot[linecolor=green,linewidth=2\pslinewidth]{0}{360}{%
143 %% \tx@optionssolides
148 %% 3dto2d cm_1 exch cm_1 exch
151 \axesIIID(
6,
4,
8)(
8,
6,
10)
155 \begin{minipage
}{9cm
}
158 \defFunction{F
}(t)
{t cos
4 mul
}{t sin
2 mul
}{}
159 \psSolid[object=grille,base=-
6 6 -
4 4,action=draw
]%
160 \psSolid[object=prisme,h=
8,fillcolor=green!
20,
%
161 base=
0 350 {F
} CourbeR2+
]%
162 \defFunction{F
}(t)
{t cos
4 mul
}{t sin
2 mul
}{8}
163 \psSolid[object=courbe,
165 function=F,range=
0 360,
166 linewidth=
2\pslinewidth,
172 \subsubsection{Exemple
5 : une gouttière, section semi-circulaire à plat
}
174 \begin{minipage
}{6cm
}
176 \psset{lightsrc=
10 20 30,viewpoint=
50 30 25 rtp2xyz,Decran=
50}
177 \begin{pspicture
}(-
8,-
5)(
6,
10)
178 %\psframe(-6,-3)(6,8)
179 \defFunction[algebraic
]{F
}(t)
180 {3*cos(t)
}{3*sin(t)
}{}
181 \defFunction[algebraic
]{G
}(t)
182 {2.5*cos(t)
}{2.5*sin(t)
}{}
183 \psSolid[object=grille,
184 base=-
6 6 -
6 6,action=draw
]%
185 \psSolid[object=prisme,h=
12,
186 fillcolor=blue!
30,RotX=-
90,
188 base=
0 pi
{F
} CourbeR2+
191 \axesIIID(
6,
6,
2)(
8,
8,
8)
195 \begin{minipage
}{6cm
}
198 \defFunction[algebraic
]{F
}(t)
199 {3*cos(t)
}{3*sin(t)
}{}
200 \defFunction[algebraic
]{G
}(t)
201 {2.5*cos(t)
}{2.5*sin(t)
}{}
202 \psSolid[object=grille,
203 base=-
6 6 -
6 6,action=draw
]%
204 \psSolid[object=prisme,h=
12,
205 fillcolor=blue!
30,RotX=-
90,
207 base=
0 pi
{F
} CourbeR2+
210 \axesIIID(
6,
6,
2)(
8,
8,
10)
214 On dessine d'abord la face extérieure (demi-cercle de rayon
3~cm), en
215 tournant dans le sens trigonométrique~:
\texttt{0 pi
{F
} CourbeR2+
}
217 Puis la face intérieure (demi-cercle de rayon
2{,
}5~cm), en tournant
218 cette fois dans le sens inverse du sens trigonométrique :
219 \texttt{pi
0 {G
} CourbeR2+
}
221 On fait tourner le solide de $-
90^
{\mathrm{o
}}$ en le plaçant au point $(
0,-
6,
3)$.
223 \textdbend{} Comme on a utilisé l'option
\verb+algebraic+ pour la
224 définition des fontions $F$ et $G$, les fonctions $
\sin $ et $
\cos $
225 utilisées fonctionnent en radian.
227 \subsubsection{Le paramètre
\texttt {decal
}}
229 Nous avons écrit plus haut qu'il était nécessaire que les quatres
230 premiers sommets soient rangés dans le sens trigonométrique par
231 rapport à l'isobarycentre des sommets de cette base. En fait, c'est la
232 règle du comportement par défaut car la règle véritable est celle-ci~:
233 Si la base comporte $n+
1$ sommets $(s_0, s_1, s_2,
\dots , s_
{n-
1},
234 s_n)$, et si $G$ est l'isobarycentre des sommets, alors $(s_0, s_1)$
235 d'une part, et $(s_
{n-
1}, s_n)$ d'autre part, doivent être rangés dans
236 le sens trigonométrique par rapport à $G$.
238 Cette règle induit des contraintes sur le codage de la base du prisme,
239 rendant parfois ce dernier inesthétique. C'est pourquoi nous avons
240 introduit l'argument
\texttt{[decal
]} (valeur par défaut$=-
2$) qui
241 permet de considérer la liste des sommets de la base comme une file
242 circulaire que l'on décalera au besoin.
244 Un exemple~: comportement par défaut avec $decal=-
2$~:
\par
245 \begin{minipage
}{6cm
}
247 \psset{lightsrc=
10 20 30,viewpoint=
50 80 35 rtp2xyz,Decran=
50}
248 \begin{pspicture
}(-
6,-
4)(
6,
7)
250 \defFunction{F
}(t)
{t cos
3 mul
}{t sin
3 mul
}{}
251 \psSolid[object=prisme,h=
8,
252 fillcolor=yellow,RotX=-
90,
256 base=
0 180 {F
} CourbeR2+
261 \begin{minipage
}{8cm
}
264 \defFunction{F
}(t)
{t cos
3 mul
}{t sin
3 mul
}{}
265 \psSolid[object=prisme,h=
8,
266 fillcolor=yellow,RotX=-
90,
270 base=
0 180 {F
} CourbeR2+
275 On voit que le sommet d'indice~$
0$ n'est pas là où on s'attendrait à
278 Recommençons, mais cette fois-ci en supprimant le décalage~:
\par
279 \begin{minipage
}{6cm
}
281 \psset{lightsrc=
10 20 30,viewpoint=
50 80 35 rtp2xyz,Decran=
50}
282 \begin{pspicture
}(-
6,-
4)(
6,
7)
284 \defFunction{F
}(t)
{t cos
3 mul
}{t sin
3 mul
}{}
285 \psSolid[object=prisme,h=
8,
286 fillcolor=yellow,RotX=-
90,
291 base=
0 180 {F
} CourbeR2+
296 \begin{minipage
}{8cm
}
299 \defFunction{F
}(t)
{t cos
3 mul
}{t sin
3 mul
}{}
300 \psSolid[object=prisme,h=
8,
301 fillcolor=yellow,RotX=-
90,
306 base=
0 180 {F
} CourbeR2+