Retour

doc_trigo_spherique.tex

Télécharger le fichier Fichier PDF
\documentclass{article}
\usepackage{pst-solides3d}
\usepackage{pst-eucl,pst-map3d}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[garamond]{mathdesign}
\renewcommand{\ttdefault}{lmtt}
\usepackage[colorlinks=true]{hyperref}
\usepackage[a4paper]{geometry}
\usepackage{showexpl}
\usepackage[french]{babel}
 
% pour placer une flèche perpendiculaire
% en un point du globe
% défini par :
\def\NormalSphere(#1,#2,#3){%
% #1 rayon
% #2 longitude
% #3 latitude
\pstVerb{/latitude #3 def
         /longitude #2 def
         /Rayon #1 def
         /xP Rayon #2 cos #3 cos mul mul def
         /yP Rayon #2 sin #3 cos mul mul def
         /zP Rayon #3 sin mul def}%
\psSolid[object=vecteur,RotZ=#2,RotY=-#3,
         args=1 0 0](xP,yP,zP)}%
% pour repérer
% un point du globe
% défini par :
\def\psPointSphere(#1,#2,#3)#4{%
% #1 rayon
% #2 longitude
% #3 latitude
\pstVerb{%
         /xP #1 #2 cos #3 cos mul mul def
         /yP #1 #2 sin #3 cos mul mul def
         /zP #1 #3 sin mul def}%
\psPoint(xP,yP,zP){#4}}%\psdot(#4)
 
 
\newcommand\Cadre[1]{\psframebox[fillstyle=solid,fillcolor=yellow,linecolor={[cmyk]{0,0,1,0.1}}]{\texttt{#1}}}
 
\title{\texttt{pst-solides3d : éléments de trigonométrie sphérique}}
\date{\today }
\begin{document}
\maketitle
\begin{abstract}
Ce document traite de trois \texttt{objets} inclus dans le package \texttt{pst-solides3d} et
permettant de dessiner sur une sphère ou bien sur un globe terrestre conjointement alors avec le package \texttt{pst-map3d}~:
\begin{itemize}
  \item des arcs sphériques ;
  \item des triangles sphériques ;
  \item des géodésiques de la sphère (grands cercles).
\end{itemize}
\end{abstract}
\tableofcontents
\section{Coordonnées sphériques}
\begin{minipage}{9cm}
\psset{unit=0.75}
\psset{lightsrc=10 0 10,viewpoint=50 12 20 rtp2xyz,Decran=50}
\begin{pspicture}(-6,-6)(6,8)
\psSolid[object=sphere,r=5,action=draw,
   intersectiontype=0,
   intersectionplan={
      [0 0 1 0]},
   intersectioncolor=(vert),
   intersectionlinewidth=2,
   ngrid=15 36]%
\axesIIID(5,5,5)(8,8,8)
\pstVerb{/CoorBe {5 30 0} def
         /CoorB {5 30 50} def
         /CoorZ {5 0 90} def
         /CoorX {5 0 0} def}%
\psPointSphere(5,0,0){X}
\psPointSphere(5,0,90){Z}
\psPointSphere(5,30,0){Be}% point sur l'équateur
\psPoint(0,0,5 50 sin mul){Bz}
\psPoint(5 50 cos mul 30 cos mul,5 50 cos mul 30 sin mul,0){Bxy}
\psPoint(5 50 cos mul 30 cos mul,0,0){Bx}
\psPoint(0,5 50 cos mul 30 sin mul,0){By}
\psPointSphere(5,30,50){B}\uput[r](B){$A$}
\psPoint(0,0,0){O}\uput[l](O){$O$}
\psline[linecolor=red](O)(B)
\psline(O)(Be)
\psline[linecolor=blue](O)(Bxy)
\psline[linestyle=dashed](Bz)(B)(Bxy)
\psline[linestyle=dashed](Bx)(Bxy)(By)
\uput[l](Bx){$x$}\uput[dr](By){$y$}
\uput[l](Bz){$z$}
\psSolid[object=trigospherique,linecolor=red,linewidth=2\pslinewidth,
      definition=arcspherique,
      args=CoorB CoorBe]%
\psSolid[object=trigospherique,linecolor=blue,linewidth=2\pslinewidth,
      definition=arcspherique,
      args=CoorX CoorBe]%
\pstMarkAngle[MarkAngleRadius=0.8,LabelSep=1.2,linecolor=blue,arrows=->,arrowinset=0]{X}{O}{Be}{\blue$\theta$}
\pstMarkAngle[MarkAngleRadius=1,LabelSep=1.4,linecolor=red,doubleline=true,arrows=->,arrowinset=0]{Bxy}{O}{B}{\red$\phi$}
\end{pspicture}
\end{minipage}
\begin{minipage}{6cm}
\[
\left\{
\begin{array}{rcl}
x&=&R\cos\theta\cos\phi\\
y&=&R\sin\theta\cos\phi\\
z&=&R\sin\phi
\end{array}
\right.
\]
\end{minipage}
\section{Arcs sphériques}
 Ce sont des arcs de grand cercle dessinés sur la sphère. On repère les extrémités de l'arc
 par les coordonnées sphériques, en définissant le triplet :
 \begin{verbatim}
\pstVerb{ /CoorA {rayon longitude latititude} def}%
 \end{verbatim}
 dans une commande \verb+\pstVerb+. Le nom \verb+/CoorA+ est arbitraire, évitez toutefois de choisir une lettre simple. Les angles sont en degrés.
 
 L'objet est nommé \Cadre{object=trigospherique} et possède deux paramètres :
 \begin{itemize}
  \item \Cadre{definition=arcspherique} ;
  \item \Cadre{args=CoorA CoorB}.
\end{itemize}
Le second contient les coordonnées sphériques des extrémités de l'arc. Dans l'exemple suivant, on trace 3 arcs sphériques
reliant les villes de Paris, Alexandrie et Dakar sur le globe terrestre. On dessine ainsi le triangle sphérique dont les sommets
sont les villes choisies.
 
Dans cet exemple le package \texttt{pst-map3d} est utilisé conjointement. Il faut donc respecter les correspondances suivantes pour\texttt{pst-solides3d}~:
\begin{center}
\begin{tabular}{|c|c|}\hline
\textbf{\texttt{pst-map3d}}&\textbf{\texttt{pst-solides3d}}\\ \hline
\Cadre{THETA}&\texttt{viewpoint=D \Cadre{THETA} PHI rtp2xyz}\\ \hline
\Cadre{PHI}&\texttt{viewpoint=D THETA \Cadre{PHI} rtp2xyz}\\ \hline
\Cadre{Dobs}&\texttt{viewpoint=\Cadre{D} THETA PHI rtp2xyz}\\ \hline
\Cadre{Decran}&\Cadre{Decran}\\ \hline
\end{tabular}
\end{center}
Par défaut le rayon du globe terrestre est fixé à \Cadre{Radius=5}. Il faudra donc une valeur identique à celle introduite dans les
coordonnées sphériques des extrémités de l'arc.
 
Le problème de la localisation sur le disque dur, du répertoire contenant les fichiers de données \texttt{datas} permettant le tracé de la mappemonde terrestre avec \texttt{pst-map3d}, peut poser problème. Soit on donnera son adresse absolue sur le disque dur dans le paramètre~:
\Cadre{\textbackslash{}psset\{path=\ldots\}}, soit l'adresse relative. Dans cet exemple ce répertoire ce trouve inclus dans le même répertoire que celui du fichier de travail : \Cadre{path=datas}.
 
\begin{LTXexample}[pos=t]
\begin{pspicture}(-6,-6)(6,6)
\psset{unit=0.75,gridmapcolor=gray!50,circles=false}% noir
\WorldMapThreeD[PHI=30,THETA=-10,gridmapdiv=5]%
\pstVerb{/CoorA {5 2.33333333333 48.8666666667} def  % Paris
         /CoorB {5 29.9166666667 31.2166666667} def  % Alexandrie
         /CoorC {5 -17.4333333333 14.6666666667} def}%  Dakar
\psset{viewpoint=20 -10 30 rtp2xyz,Decran=25}
\psset{linecolor=red}
\psSolid[object=trigospherique,
      definition=arcspherique,linewidth=2\pslinewidth,
      args=CoorA CoorB]%
\psSolid[object=trigospherique,
      definition=arcspherique,linewidth=2\pslinewidth,
      args=CoorA CoorC]%
\psSolid[object=trigospherique,linewidth=2\pslinewidth,
      definition=arcspherique,
      args=CoorB CoorC]%
\NormalSphere(5,2.33333,48.87)%
\psPoint(xP,yP,zP){P}\uput[l](P){\small\yellow Paris}
\NormalSphere(5,29.9,31.2)%
\psPoint(xP,yP,zP){P}\uput[dr](P){\small\green Alexandrie}
\NormalSphere(5,-17.43,14.7)%
\psPoint(xP,yP,zP){P}\uput[l](P){\small\yellow Dakar}
\psset{transform={1.5 mulv3d},linecolor=black}
\NormalSphere(3.33,0,90)% le pôle Nord
\end{pspicture}
\end{LTXexample}
\section{Triangle sphérique}
Pour marquer les angles, on utilise le package \texttt{pst-eucl}.
 
\begin{LTXexample}[pos=t]
\psset{unit=0.75}
\psset{lightsrc=10 0 10,viewpoint=50 -20 30 rtp2xyz,,Decran=50}
\begin{pspicture}(-6,-6)(6,6)
\psframe(-6,-6)(6,6)
\pstVerb{%  r, theta, phi
   /CoordA {5 2.33333333333 48.8666666667} def  % Paris
   /CoordB {5 29.9166666667 31.2166666667} def  % Alexandrie
   /CoordC {5 -17.4333333333 14.6666666667} def}% Dakar
\psSolid[object=sphere,r=5,action=draw,
         intersectionplan={
         [0 0 1 0]},
         intersectioncolor=(rouge),
         intersectionlinewidth=2,ngrid=15 36]%
\psSolid[object=trigospherique,linecolor=blue,
         definition=trianglespherique,linewidth=2\pslinewidth,
         args=CoordA CoordB CoordC]
\psPoint(0,0,0){O}\uput[l](O){$O$}
\psPointSphere(5,2.33333,48.87){A}\uput[u](A){$A$}
\psline[linestyle=dashed](O)(A)
%\psSolid[object=line,linestyle=dashed,
%         base=0 0 0 xP yP zP]%
\psPointSphere(5,29.9,31.2){B}\uput[r](B){$B$}
\psline[linestyle=dashed](O)(B)
%\psSolid[object=line,linestyle=dashed,
%      base=0 0 0 xP yP zP]%
\psPointSphere(5,-17.43,14.7){C}\uput[d](C){$C$}
\psline[linestyle=dashed](O)(C)
%\psSolid[object=line,linestyle=dashed,
%      base=0 0 0 xP yP zP]%
\pstMarkAngle[LabelSep=0.8,linecolor=cyan]{A}{B}{C}{$\beta$}
\pstMarkAngle[LabelSep=0.8,linecolor=red]{C}{A}{B}{$\alpha$}
\pstMarkAngle[LabelSep=0.8,linecolor=green]{B}{C}{A}{$\gamma$}
\end{pspicture}
\end{LTXexample}
\section{Les géodésiques de la sphère}
Les grands cercles sont déterminés par deux points de la sphère. Ce sont donc les coordonnées sphériques des deux points choisis
que l'on passera dans le paramètre~:~\Cadre{args=CoordA CoordB}, le second paramètre qui activera le tracé est \Cadre{definition=geodesique\_sphere}.
 
\begin{LTXexample}[pos=t]
\begin{pspicture}(-5,-5)(5,5)
\psset{unit=0.75,gridmapcolor=black}
\WorldMapThreeD[PHI=0,THETA=10,gridmapdiv=5,gridmap=false]%
\pstVerb{% r, theta, phi
       /CoordA {5 2.33333333333 48.8666666667} def  % Paris
       /CoordB {5 29.9166666667 31.2166666667} def  % Alexandrie
       /CoordC {5 -17.4333333333 14.6666666667} def}% Dakar
\psset{viewpoint=20 10 0 rtp2xyz,Decran=25}
\psset{linecolor=red,linestyle=dashed}
\psSolid[object=trigospherique,
      definition=geodesique_sphere,
      args=CoordA CoordB]%
\psSolid[object=trigospherique,
      definition=geodesique_sphere,
      args=CoordB CoordC]%
\psSolid[object=trigospherique,
      definition=geodesique_sphere,
      args=CoordA CoordC]%
\psset{linecolor=blue,linestyle=solid,linewidth=2\pslinewidth}
\psSolid[object=trigospherique,
      definition=trianglespherique,
      args=CoordA CoordB CoordC]%
\end{pspicture}
\end{LTXexample}
\section{Relations fondamentales}
Dans le livre de Henri Bouasse : \textit{Cours de mathématiques générales}, publié en 1\,920, il y a de superbes figures et d'excellentes
démonstrations qui n'ont pas pris une ride.
 
Les pages 95 à 102 sont consacrées à la trigonométrie sphérique. Les dessin ci-dessous sont des reproduction des figures~53 et 54. Voici un extrait de ces pages~:
 
<< On appelle \textit{triangle sphérique} une portion ABC de sphère limitée par des arcs de grands cercles $a$, $b$, $c$. C'est la figure tracée sur la sphère par trois plans qui passent par le centre. Les arcs $a$, $b$, $c$, s'appellent les côtés du triangle ; nous les supposerons toujours moindre
qu'un demi-cercle. Les angles dièdres A, B, C, sont les \textit{angles} du triangle sphérique.
 
<< Nous pouvons toujours prendre pour unité le rayon de la sphère sur laquelle se trouve le triangle sphérique ; les longueurs des arcs $a$, $b$, $c$, sont alors mesurées par des nombres qui sont les \textit{arcs au sens trigonométrique du mot}.
 
<< Par le centre de la sphère, menons trois droites perpendiculaires aux plans $a$, $b$, $c$. Elles coupent la sphère en six points, deux à deux placés aux extrémités d'un diamètre. En choisissant convenablement les extrémités $A'$, $B'$, $C'$, nous pouvons former un nouveau triangle dont les côtés sont encore inférieurs à un demi-grand cercle et qu'on appelle \textit{triangle polaire} du premier ; réciproquement, le premier est polaire du second. On vérifiera immédiatement que les côtés des triangles sont supplémentaires des angles de l'autre :
\[
\begin{array}{rcccl}
a'+A&=&a+A'&=&\pi,\\
b'+B&=&b+B'&=&\pi,\\
c'+C&=&c+C'&=&\pi.
\end{array}
\]
<< Donc toute relation démontrée entre les angles et les côtés d'un triangle sphérique quelconque, devant s'appliquer également bien à l'un et l'autre triangles polaires, subsiste quand on y remplace les angles par les supplémentaires des côtés, et les côtés par les supplémentaires des angles. >>
\begin{center}
\psset{unit=0.5}
\psset{lightsrc=10 0 10,viewpoint=50 0 10 rtp2xyz,Decran=50}
\begin{pspicture}(-6,-6)(6,6)
\psframe(-6,-6)(6,6)
\pstVerb{% x y z -> r theta phi
/xyz2rthetaphi { %% x y z
6 dict begin
   /z exch def
   /y exch def
   /x exch def
   /rayon x dup mul y dup mul add z dup mul add sqrt def % rayon
   /th y x atan def % theta
   /ph z rayon div arcsin def % phi
   rayon th ph
end
} def}%
\pstVerb{%  r, theta, phi
   /rayon 5 def
   /phA 60 def
   /thA 0 def
   /phB -10 def
   /thB 40 def
   /phC -10 def
   /thC -30 def
   /CoordA {rayon thA phA} def  % A
    CoordA rtp2xyz /zA exch def /yA exch def /xA exch def
   /CoordB {rayon thB phB} def  % B
    CoordB rtp2xyz /zB exch def /yB exch def /xB exch def
   /CoordC {rayon thC phC} def  % C
    CoordC rtp2xyz /zC exch def /yC exch def /xC exch def
   xA yA zA xB yB zB vectprod3d /zA'1 exch rayon div def /yA'1 exch rayon div def /xA'1 exch rayon div def
   xB yB zB xC yC zC vectprod3d /zB'1 exch rayon div def /yB'1 exch rayon div def /xB'1 exch rayon div def
   xC yC zC xA yA zA vectprod3d /zC'1 exch rayon div def /yC'1 exch rayon div def /xC'1 exch rayon div def
   xA'1 yA'1 zA'1 xyz2rthetaphi /phA'1 exch def /thA'1 exch def
   xB'1 yB'1 zB'1 xyz2rthetaphi /phB'1 exch def /thB'1 exch def
   xC'1 yC'1 zC'1 xyz2rthetaphi /phC' exch def /thC' exch def
   %
  /zA'2 zA'1 neg def /zB'2 zB'1 neg def /zC'2 zC'1 neg def
  /yA'2 yA'1 neg def /yB'2 yB'1 neg def /yC'2 yC'1 neg def
  /xA'2 xA'1 neg def /xB'2 xB'1 neg def /xC'2 xC'1 neg def
   xA'1 yA'1 zA'1 xyz2rthetaphi /phA'1 exch def /thA'1 exch def
   xB'1 yB'1 zB'1 xyz2rthetaphi /phB'1 exch def /thB'1 exch def
   xC'1 yC'1 zC'1 xyz2rthetaphi /phC'1 exch def /thC'1 exch def
   xA'2 yA'2 zA'2 xyz2rthetaphi /phA'2 exch def /thA'2 exch def
   xB'2 yB'2 zB'2 xyz2rthetaphi /phB'2 exch def /thB'2 exch def
   xC'2 yC'2 zC'2 xyz2rthetaphi /phC'2 exch def /thC'2 exch def
   }%
\psSolid[object=sphere,r=5,action=draw,ngrid=15 36,linewidth=0.5\pslinewidth]%
\psSolid[object=trigospherique,linecolor=blue,
         definition=trianglespherique,linewidth=2\pslinewidth,
         args=CoordA CoordB CoordC]
\psPointSphere(rayon,thA'1,phA'1){A'1}\psdot(A'1)
\psPointSphere(rayon,thB'1,phB'1){B'1}\psdot(B'1)
\psPointSphere(rayon,thC'1,phC'1){C'1}\psdot(C'1) % <--
%
\psPointSphere(rayon,thA'2,phA'2){A'2}\psdot(A'2) % <--
\psPointSphere(rayon,thB'2,phB'2){B'2}\psdot(B'2) % <--
\psPointSphere(rayon,thC'2,phC'2){C'2}\psdot(C'2)
%
\psSolid[object=trigospherique,linecolor=blue,
      definition=trianglespherique,linewidth=2\pslinewidth,
      args={rayon thA'2 phA'2 rayon thB'2 phB'2 rayon thC'2 phC'2}]
\psPointSphere(rayon,thA,phA){A}\uput[u](A){$A$}
\psSolid[object=line,linestyle=dashed,
         args={0 0 0 xP yP zP}]%
\psPointSphere(rayon,thB,phB){B}\uput[r](B){$B$}
\psSolid[object=line,linestyle=dashed,
         args={0 0 0 xP yP zP}]%
\psPointSphere(rayon,thC,phC){C}\uput[d](C){$C$}
\psSolid[object=line,linestyle=dashed,
         args={0 0 0 xP yP zP}]%
{\psset{linestyle=dashed}
\psline(A'1)(A'2)\psline(B'1)(B'2)\psline(C'1)(C'2)}
\uput[l](A'2){$C'$}\uput[u](B'2){$A'$}\uput[r](C'2){$B'$}
\psPoint(0,0,0){O}\uput[l](O){$O$}\psdot(O)
\end{pspicture}
\end{center}
 
<< Soit $ABC$ un triangle sphérique. Menons un plan par le sommet $A$ perpendiculaire à l'arête $OA$. Les droites $AB'$ et $AC'$
sont tangentes en $A$ aux arcs de grand cercles $c$ et $b$. On a donc par définition (voir la petite figure en haut et à droite) :
 
\begin{center}
\begin{minipage}{0.45\linewidth}
\[
\begin{array}{rcl}
\overline{AB'}&=&\tan c,\\
\overline{AC'}&=&\tan b,
\end{array}
\]
\end{minipage}
%\hfill
\begin{minipage}{0.45\linewidth}
\[
\begin{array}{rclcl}
\overline{OB'}&=&\sec c&=&1\div\cos c,\\
\overline{OC'}&=&\sec b&=&1\div\cos b.
\end{array}
\]
\end{minipage}
\end{center}
\begin{center}
\psset{unit=0.75}
\psset{lightsrc=10 0 10,viewpoint=50 50 20 rtp2xyz,Decran=50}
\begin{pspicture}(-8,-6)(4,6)
%\psframe(-8,-6)(4,6)
\pstVerb{
   /ph 50 def
   /th 30 def
   /CoordA {5 0 ph} def  % A
   /CoordB {5 0 0 } def  % B
   /CoordC {5 th 0} def  % C
   /xB' 5 ph cos div def % B'
   /b2 ph cos dup mul th cos dup mul div def
   /c2 ph sin dup mul ph cos dup mul th tan dup mul mul add def
   /b' 1 b2 add c2 sub 2 div b2 sqrt div arccos def
   /rC' 5 b' cos div def
   /xC' rC' th cos mul def
   /yC' rC' th sin mul def}%
%\psSolid[object=sphere,r=5,action=draw,ngrid=15 36]%
\psSolid[object=trigospherique,linecolor=blue,
      definition=trianglespherique,linewidth=2\pslinewidth,
      args=CoordA CoordB CoordC]
\psPointSphere(5,0,ph){A}\uput[u](A){$A$}
\psPointSphere(5,0,0){B}\uput[ul](B){$B$}
\psPointSphere(5,th,0){C}\uput[d](C){$C$}
\psPointSphere(5,0,ph 2 div){ABm}\uput{0.1}[l](ABm){\blue$c$}
\psPointSphere(5,th 2 div,0){BCm}\uput[ur](BCm){\blue$a$}
\psPointSphere(5,th 2 div,ph 2 div){ACm}\uput{0.3}[r](ACm){\blue$b$}
\psPoint(0,0,0){O}\uput[r](O){$O$}
\psPoint(xB',0,0){B'}\psdot(B')\uput[u](B'){$B'$}
\pcline[nodesepB=-0.5](O)(B')
\psPoint(xC',yC',0){C'}\psdot(C')\uput[d](C'){$C'$}
\pcline[nodesepB=-0.5](O)(C')
\psline(O)(A)(C')(B')(A)
\psSolid[object=trigospherique,linecolor=blue,linewidth=2\pslinewidth,
      definition=arcspherique,
      args=CoordA CoordC]
\rput(1,3){%
         \pscircle{1.5}
         \pspolygon(0,0)(1.5,0)(!1.5 1.5 50 tan mul)
         \psarc(0,0){0.5}{0}{50}
         \uput[25](0.5;25){$c$}
         \uput[dl](0,0){$O$}
         \uput[r](1.5,0){A}
         \uput[r](!1.5 1.5 50 tan mul){$B'$}
         \uput[d](1.5;50){$B$}
         }
\end{pspicture}
\end{center}
Dans les triangles $AB'C'$ et $OB'C'$ on a :
\[
\begin{array}{rcl}
\overline{B'C'^2}&=&\overline{AB'^2}+\overline{AC'^2}-2\overline{AB'}\cdot \overline{AC'}\cdot\cos A\\
                  &=&\overline{OB'^2}+\overline{OC'^2}-2\overline{OB'}\cdot \overline{OC'}\cdot\cos a.\qquad\qquad (1)
\end{array}
\]
<< Dans les triangles rectangles $AC'O$, $AB'O$, on a :
\begin{center}
\begin{minipage}{0.3\linewidth}
\[
\begin{array}{rcl}
\overline{AO}&=&1 ;
\end{array}
\]
\end{minipage}
\begin{minipage}{0.3\linewidth}
\[
\begin{array}{rcl}
\overline{OC'^2}&=&\overline{AC'^2}+1,
\end{array}
\]
\end{minipage}
\begin{minipage}{0.3\linewidth}
\[
\begin{array}{rcl}
\overline{OB'^2}&=&\overline{AB'^2}+1,
\end{array}
\]
\end{minipage}
\end{center}
Substituant dans (1), changeant les signes, il vient :
\[
2+2\tan c\tan b\cos A=2\cos a\div(\cos b\cdot \cos c).
\]
D'où enfin :
\[
    \cos a=\cos b\cos c+\sin b\sin c\cos \mathrm{A}
\]
\[
    \cos b=\cos c\cos a+\sin c\sin a\cos \mathrm{B}
\]
\[
    \cos c=\cos a\cos b+\sin a\sin b\cos \mathrm{C}
\]
\begin{flushright}
Henri \textsc{Bouasse}
\end{flushright}
\end{document}