Source de maths_boulemiroir.tex
\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\usepackage{pstcol}
\usepackage{pst-R3D}
\input realcalc
\usepackage{trig}
\usepackage{multido}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}%
\SpecialCoor
\definecolor{Beige} {rgb}{0.96,0.96,0.86}
\title{Compléments théoriques\\
pour PST-MIRROR}
\author{\shortstack{Manuel \textsc{Luque}}}
\date{11 août 2002}
\begin{document}
\maketitle
\begin{center}
\begin{minipage}{0.8\textwidth}
\begin{center}
Résumé
\end{center}
Pour illustrer ces compléments, j'utilise le package \textsf{PST-R3D}
qui est une adaptation, que j'ai faite, de \textsf{PST-3D} à la perspective cavalière. Dans ce package Timothy Van Zandt
 avait eu l'idée très
ingénieuse de construire la \textsf{matrice de transformation courante~:~CTM} de
\texttt{PostScript} à partir des formules de transformation permettant de
représenter en projection parallèle dans une direction donnée par les
coordonnées de $\mathtt{[viewpoint=p_x p_y p_z]}$ un plan défini par une normale
à ce plan $\mathtt{[normal= n_x n_y n_z]}$ et un point origine appartenant à ce
plan.

J'ai repris cette idée dans \textsf{PST-R3D}, et bien sûr dans ce
qui nous intéresse~:~la vison d'un objet dans une boule-miroir,
c'est-à-dire dans le package \textsf{PST-MIRROR}, pour le cas particulier de la définition d'un plan.
\end{minipage}
\end{center}

\section*{Formules de transformation}
\begin{minipage}{.4\textwidth}
Formules permettant de passer du repère ($O,\overrightarrow{I},\overrightarrow{J},\overrightarrow{K}$)
 au repère ($O,\overrightarrow{i},\overrightarrow{j},\overrightarrow{k}$)\\
 $\overrightarrow{K}$ représentera la normale au plan que l'on souhaite
 dessiner en perspective cavalière. Ce vecteur $\overrightarrow{K}$ est défini
 par la longitude $\theta$ et la latitude $\varphi$.

 Dans ($O,\overrightarrow{i},\overrightarrow{j},\overrightarrow{k}$)
 $$\overrightarrow{K}=\left(%
 \begin{array}{c}
 \cos\varphi\cos\theta\\
 \cos\varphi\sin\theta\\
 \sin\varphi
 \end{array}
 \right)$$
 Il faut ensuite choisir les deux autres vecteurs de la base
 ($\overrightarrow{I},\overrightarrow{J},\overrightarrow{K}$). Je choisis de
 garder $\overrightarrow{I}$ dans le plan $Oxy$.
\end{minipage}
\hfill
\begin{minipage}{0.5\textwidth}
\begin{pspicture}(-3,-3)(5,4.5)
\perspective[normale=-90 0]{%
\psline[linewidth=2\pslinewidth]{->}(4,0)\uput[90](4,0){\scalebox{-1 1}{$\overrightarrow{i}$}}%
\psline[linestyle=dashed]{->}(4,0)\uput[0](4,0){\scalebox{-1 1}{$x$}}}
\perspective[normale=0 0]{%
\psline[linewidth=2\pslinewidth]{->}(0,4)\uput[0](0,4){$\overrightarrow{k}$}%
\psline[linestyle=dashed]{->}(0,4)\uput[180](0,4){$z$}}
\perspective[normale=0 0]{%
\psline[linewidth=2\pslinewidth]{->}(5,0)\uput[90](5,0){$\overrightarrow{j}$}%
\psline[linestyle=dashed]{->}(5,0)\uput[0](5,0){$y$}}
\perspective[normale=0 90](0,0,0){\psline[linestyle=dotted](5;-30)\uput[0](5;-30){$x'$}\psframe(!2 sqrt 30 cos mul 2 mul 2 sqrt neg)%
\psarc{->}(0,0){2}{-90}{-30}\uput[0](2.2;-60){$\theta$}}
\perspective[normale=-30 0]{\psframe(!2 2 sqrt mul 2 2 sqrt mul)%
\psline[doubleline=true,linecolor=red]{->}(!2 2 sqrt mul 2 2 sqrt mul)\uput[90](!2 2 sqrt mul 2 2 sqrt
mul){$\red \overrightarrow{K}$}\psarc{->}(0,0){2}{0}{45}\uput[0](2;30){$\varphi$}}
\end{pspicture}
\end{minipage}

Vu de dessus, dans le plan $Oxy$ :

\begin{minipage}{.4\textwidth}
$$\overrightarrow{I}=\left(%
 \begin{array}{c}
 \hphantom{-}\sin\theta\\
 -\cos\theta\\
 0
 \end{array}
 \right)$$
\end{minipage}
\hfill
\begin{minipage}{0.5\textwidth}

\begin{pspicture}(-3,-4)(4,2)
\psline{->}(4,0)
\uput[0](4,0){$y$}
\psline[linestyle=dashed](0,2)
\psline{->}(0,-3.5)
\uput[270](0,-3.5){$x$}
\uput[135](0,0){O}
{\psset{linewidth=2\pslinewidth}
\psline{->}(0,-2)
\uput[0](0,-2){$\overrightarrow{i}$}
\psline{->}(2,0)
\uput[90](2,0){$\overrightarrow{j}$}
\psline[linestyle=dotted](3;-30)
\uput[0](3;-30){$x'$}
\psline[linecolor=red,doubleline=true]{->}(-2;60)
\uput[0](-2;60){$\red \overrightarrow{I}$}
}
\psarc{->}(0,0){1.5}{-90}{-30}\uput[0](1.6;-60){$\theta$}
\end{pspicture}
\end{minipage}

Il reste à trouver $\overrightarrow{J}$ pour que la base
($\overrightarrow{I},\overrightarrow{J},\overrightarrow{K}$) soit directe :
$\overrightarrow{J}=\overrightarrow{K}\times\overrightarrow{I}$
$$\overrightarrow{J}=\left(\begin{array}{c}
 \cos\varphi\cos\theta\\
 \cos\varphi\sin\theta\\
 \sin\varphi
 \end{array}
 \right)
\times
\left(
 \begin{array}{c}
 \hphantom{-}\sin\theta\\
 -\cos\theta\\
 0
 \end{array}
 \right)
 =
 \left(\begin{array}{c}
 \sin\varphi\cos\theta\\
 \sin\varphi\sin\theta\\
 -\cos\varphi
 \end{array}
 \right)
 $$
 La matrice de transformation :
 $$A=\left(%
 \begin{array}{ccc}
 \hphantom{-}\sin\theta&\sin\varphi\cos\theta&\cos\varphi\cos\theta\\
 -\cos\theta&\sin\varphi\sin\theta&\cos\varphi\sin\theta\\
 0&-\cos\varphi&\sin\varphi
 \end{array}
 \right)$$
 permet de déterminer les coordonnées ($x,y,z$) d'un point M si on connaît ses
 coordonnées $(X,Y,Z)$ dans le repère
 ($O,\overrightarrow{I},\overrightarrow{J},\overrightarrow{K}$).
 $$\left(\begin{array}{c}
 x\\
 y\\
 z
 \end{array}
 \right)
 =\left(%
 \begin{array}{ccc}
 \hphantom{-}\sin\theta&\sin\varphi\cos\theta&\cos\varphi\cos\theta\\
 -\cos\theta&\sin\varphi\sin\theta&\cos\varphi\sin\theta\\
 0&-\cos\varphi&\sin\varphi
 \end{array}
 \right)
\left(\begin{array}{c}
 X\\
 Y\\
 Z
 \end{array}
 \right)
 $$
$$\left\lbrace\begin{array}{cccclcl}
x&=&\hphantom{-}X\sin\theta&+&Y\sin\varphi\cos\theta&+&Z\cos\varphi\cos\theta\\
y&=&-X\cos\theta&+&Y\sin\varphi\sin\theta&+&Z\cos\varphi\sin\theta\\
z&=&&&-Y\cos\varphi&+&Z\sin\varphi
\end{array}
\right.
$$
Si l'on considère un point du plan appartenant au plan $XOY$ ($Z=0$):
$$\left\lbrace\begin{array}{ccccl}
x&=&\hphantom{-}X\sin\theta&+&Y\sin\varphi\cos\theta\\
y&=&-X\cos\theta&+&Y\sin\varphi\sin\theta\\
z&=&&&-Y\cos\varphi
\end{array}
\right.
$$
Et si maintenant, ce repère $OXYZ$ est translaté en un point
$O'(x_{O'},y_{O'},z_{O'})$
$$\left\lbrace\begin{array}{cccclcl}
x&=&\hphantom{-}X\sin\theta&+&Y\sin\varphi\cos\theta&+&x_{O'}\\
y&=&-X\cos\theta&+&Y\sin\varphi\sin\theta&+&y_{O'}\\
z&=&&&Y\cos\varphi&+&z_{O'}
\end{array}
\right.
$$
Ce sont ces formules que j'ai utilisées pour définir, les cercles
et les rectangles.
\end{document}

 

Validation CSS Validation XHTMLSyracuse — Dernière modification : 19 août 2002 (0.07s - 3205702 - 5 juillet 2008) vers le haut