| 1 |
\documentclass[12pt]{article} |
|---|
| 2 |
\usepackage[latin1]{inputenc} |
|---|
| 3 |
\usepackage[T1]{fontenc} |
|---|
| 4 |
\usepackage[frenchb]{babel} |
|---|
| 5 |
\usepackage[pdftex,a4paper,margin=1.5cm,nohead]{geometry} |
|---|
| 6 |
\usepackage{graphicx} |
|---|
| 7 |
\graphicspath{{figuresdoc/}} |
|---|
| 8 |
|
|---|
| 9 |
\usepackage[colorlinks=true]{hyperref} |
|---|
| 10 |
|
|---|
| 11 |
\usepackage{calc,url,subfigure,amsmath} |
|---|
| 12 |
\usepackage{fourier,mflogo,manfnt,pifont,textcomp} |
|---|
| 13 |
\input{christ5} |
|---|
| 14 |
\pagestyle{empty} |
|---|
| 15 |
|
|---|
| 16 |
\usepackage{tikz} |
|---|
| 17 |
\usetikzlibrary{shapes} |
|---|
| 18 |
\usetikzlibrary{topaths} |
|---|
| 19 |
\newsavebox{\dangerbox} |
|---|
| 20 |
\newlength{\marge}\setlength{\marge}{7.5mm} |
|---|
| 21 |
|
|---|
| 22 |
\newenvironment{Danger}{ |
|---|
| 23 |
\begin{lrbox}{\dangerbox} |
|---|
| 24 |
\begin{minipage}{\linewidth-\marge} |
|---|
| 25 |
} |
|---|
| 26 |
{ |
|---|
| 27 |
\end{minipage} |
|---|
| 28 |
\end{lrbox} |
|---|
| 29 |
\tikzstyle{mybox} = [draw=blue!20, fill=red!20, very thick, |
|---|
| 30 |
rectangle, rounded corners, inner sep=10pt] |
|---|
| 31 |
\par |
|---|
| 32 |
\begin{tikzpicture} |
|---|
| 33 |
\node [mybox] (box) { |
|---|
| 34 |
\begin{minipage}[t!]{\linewidth-\marge} |
|---|
| 35 |
\usebox{\dangerbox} |
|---|
| 36 |
\end{minipage} |
|---|
| 37 |
}; |
|---|
| 38 |
\end{tikzpicture} |
|---|
| 39 |
\par |
|---|
| 40 |
} |
|---|
| 41 |
|
|---|
| 42 |
\definecolor{LightRed}{rgb}{1,0.8,0.8} |
|---|
| 43 |
|
|---|
| 44 |
\title{\texttt{mp-geo}} |
|---|
| 45 |
\author{C.Poulain} |
|---|
| 46 |
\date{\today} |
|---|
| 47 |
\begin{document} |
|---|
| 48 |
\maketitle |
|---|
| 49 |
\begin{abstract} |
|---|
| 50 |
\texttt{mp-geo} est un paquet \MP\ permettant de représenter la |
|---|
| 51 |
Terre. Il est possible de la voir sous n'importe quel angle. La |
|---|
| 52 |
majorité des éléments présents réellement sont présents sur les |
|---|
| 53 |
représentations construites. Certaines projections planes sont |
|---|
| 54 |
également présentes. |
|---|
| 55 |
\end{abstract} |
|---|
| 56 |
\begin{figure}[ht] |
|---|
| 57 |
\centering |
|---|
| 58 |
\includegraphics[scale=0.8]{pagepresentation.png} |
|---|
| 59 |
\caption{Vue de l'Asie ($\theta=90$\degres; $\phi=20$\degres).} |
|---|
| 60 |
\label{Asie} |
|---|
| 61 |
\end{figure} |
|---|
| 62 |
\tableofcontents |
|---|
| 63 |
\newpage |
|---|
| 64 |
\begin{center} |
|---|
| 65 |
\begin{Danger} |
|---|
| 66 |
Avant toutes choses, ce package nécessite de modifier les limites de \MP. {\em A priori}\footnotemark, seule la variable \verb+main_memory_size+ est à changer.\footnotemark |
|---|
| 67 |
\end{Danger} |
|---|
| 68 |
\end{center} |
|---|
| 69 |
\footnotetext[1]{{\em A priori} car en cours d'élaboration, j'ai du |
|---|
| 70 |
également modifier \verb!buffer\_size! et \verb!path\_size!. J'ai |
|---|
| 71 |
même réussi à obtenir une erreur \texttt{independent variables : 33 |
|---|
| 72 |
182 318} qui indique que l'on dépasse les limites internes de |
|---|
| 73 |
\MP.} |
|---|
| 74 |
\footnotetext[2]{Sous un environnement Debian Etch et Lenny, la démarche est la suivante : |
|---|
| 75 |
\begin{itemize} |
|---|
| 76 |
\item Sous \texttt{root}, éditer le fichier \texttt{95NonPath.cnf} se |
|---|
| 77 |
trouvant dans le répertoire \verb!/etc/texmf/texmf.d/!; |
|---|
| 78 |
\item rechercher la variable \verb!main\_memory\_size! et la mettre |
|---|
| 79 |
à \nombre{40000000}; |
|---|
| 80 |
\item enfin toujours sous \texttt{root}, on effectue un |
|---|
| 81 |
rafraîchissement : \texttt{update-texmf} puis |
|---|
| 82 |
\texttt{fmtutil-sys --refresh}. |
|---|
| 83 |
\end{itemize} |
|---|
| 84 |
On doit être à l'aise avec cette valeur. ;-) |
|---|
| 85 |
} |
|---|
| 86 |
En effet, \texttt{mp-geo} est un package gourmand en |
|---|
| 87 |
ressources. \`A titre d'exemple, la création de l'image \ref{Asie} a duré environ 26 secondes\footnote{Les réponses données |
|---|
| 88 |
par la commande \texttt{time} sous Linux sont\\ |
|---|
| 89 |
\verb!real 0m26.795s!\\ |
|---|
| 90 |
\verb!user 0m26.590s!\\ |
|---|
| 91 |
\verb!sys 0m0.116s!\\Tous les temps mesurés dans cette |
|---|
| 92 |
documentation l'ont été sur cette machine.} |
|---|
| 93 |
sur un AMD64-2800+ équipé de 512 Mo de RAM. |
|---|
| 94 |
\section{Introduction} |
|---|
| 95 |
Ce package est encore {\em en développement}. Par comparaison avec le |
|---|
| 96 |
package PStricks \verb!pst-geo!, \verb!mp-geo! comporte, dans l'état |
|---|
| 97 |
actuel, beaucoup moins de points de tracés\footnote{Les données |
|---|
| 98 |
proviennent de la page \url{ftp://ftp.blm.gov/pub/gis/wdbprg.zip} |
|---|
| 99 |
dont l'utilisation n'est pas simple. En effet, les programmes |
|---|
| 100 |
disponibles dans cette archive ne fonctionnent que sous DOS ! Eh |
|---|
| 101 |
oui, vous avez bien lu. Cependant, heureux utilisateur de Linux, |
|---|
| 102 |
\verb!dosbox! est venu à mon secours pour obtenir toutes ces |
|---|
| 103 |
précieuses données.} |
|---|
| 104 |
(surtout pour les lacs et rivières), certaines projections ne sont pas |
|---|
| 105 |
présentes, la présence des villes n'est pas implantée (seule la |
|---|
| 106 |
présence des capitales est disponible),\ldots |
|---|
| 107 |
\par Cependant, il peut apporter des satisfactions à l'utilisateur de |
|---|
| 108 |
\MP\ qui, à ma connaissance, ne dispose pas d'un tel package. |
|---|
| 109 |
\\Mais, à terme, il est vrai qu'il faudrait réussir (et avoir le temps |
|---|
| 110 |
surtout) à implémenter certaines particularités de \verb!pst-geo!. Et en |
|---|
| 111 |
parlant de ce package, je tiens à remercier Manuel {\sc Luque} pour l'aide |
|---|
| 112 |
et les encouragements qu'il a pu m'apporter durant l'élaboration de |
|---|
| 113 |
\texttt{mp-geo}. |
|---|
| 114 |
\begin{figure}[ht] |
|---|
| 115 |
\centering |
|---|
| 116 |
\includegraphics[scale=0.7]{grandslacs.png} |
|---|
| 117 |
\caption{Les grands lacs d'Amérique du Nord ($\theta=-105$\degres; |
|---|
| 118 |
$\phi=45$\degres)} |
|---|
| 119 |
\end{figure} |
|---|
| 120 |
\section{Fonctionnement} |
|---|
| 121 |
\subsection{Généralités et options} |
|---|
| 122 |
Ce package est {\em indépendant}, bien qu'il reprenne bon nombre d'éléments |
|---|
| 123 |
de \verb!geometriesyr16.mp!\footnote{Un autre de mes packages \MP\ |
|---|
| 124 |
personnels, dédié, quant à lui, à la géométrie.} et plus |
|---|
| 125 |
particulièrement du package dédié à la géométrie spatiale |
|---|
| 126 |
\verb!donymodule.mp!. L'observateur est alors représenté par deux |
|---|
| 127 |
angles (en degrés) : |
|---|
| 128 |
\begin{itemize} |
|---|
| 129 |
\item un angle $\theta$ qui représente la longitude de l'observateur; |
|---|
| 130 |
\item un angle $\phi$ qui représente la latitude de l'observateur. |
|---|
| 131 |
\end{itemize} |
|---|
| 132 |
\par Les données initiales étaient dans un seul fichier. Elles ont été |
|---|
| 133 |
fragmentées en fichiers individuels \verb!.dat! afin de pouvoir |
|---|
| 134 |
les retrouver facilement et d'y avoir un accès plus facile. On dispose |
|---|
| 135 |
ainsi d'un fichier par pays ainsi que d'un fichier par continent (cela donne |
|---|
| 136 |
une meilleure visibilité au code source du package). |
|---|
| 137 |
\\On dispose d'un seul fichier pour toutes les îles\footnote{Ceci pose |
|---|
| 138 |
un problème d'accès direct à des pays comme Cuba ou l'Australie. Un |
|---|
| 139 |
autre souci à régler\ldots}. Enfin les lacs sont regroupés dans un |
|---|
| 140 |
seul fichier ainsi que pour les fleuves et rivières et les |
|---|
| 141 |
volcans\footnote{Ce sont les 813 volcans qui ont eu une éruption ces |
|---|
| 142 |
10\,000 dernières années.}. |
|---|
| 143 |
\\\`A noter que les lacs, les fleuves, les capitales et les volcans |
|---|
| 144 |
sont {\em optionnels}; leur affichage est fait par défaut sauf pour |
|---|
| 145 |
les capitales et volcans; mais l'utilisateur peut en décider |
|---|
| 146 |
autrement en changeant les paramètres \verb!lacs!, \verb!fleuves!, |
|---|
| 147 |
\verb!capitales! et \verb!volcans! à \verb!false!. Ceci peut être non |
|---|
| 148 |
négligeable lors de la mesure du temps de compilation. Par exemple, le temps de |
|---|
| 149 |
compilation de la figure \ding{172} a été de 37~s alors que pour la |
|---|
| 150 |
figure \ding{173}, la compilation a duré 27~s. |
|---|
| 151 |
\begin{figure}[ht] |
|---|
| 152 |
\centering |
|---|
| 153 |
\subfigure[Figure |
|---|
| 154 |
\ding{172}]{\includegraphics[scale=0.7]{payscomplets.png}}\hfill\subfigure[Figure \ding{173}]{\includegraphics[scale=0.7]{paysnus.png}} |
|---|
| 155 |
\end{figure} |
|---|
| 156 |
Une autre option est celle de colorer uniformément ou pas les |
|---|
| 157 |
pays. Par défaut, cette option \verb!noncolore! est positionnée à |
|---|
| 158 |
\verb!false!\footnote{Le théorème des quatre couleurs n'est pas |
|---|
| 159 |
implanté.}. Si l'on modifie sa valeur, on obtient une image telle |
|---|
| 160 |
que la figure \ref{unicolore}. |
|---|
| 161 |
\begin{figure}[ht] |
|---|
| 162 |
\centering |
|---|
| 163 |
\includegraphics[scale=0.7]{mondenoncolore.png} |
|---|
| 164 |
\caption{Coloration uniforme ($\theta=105$\degres; $\phi=30$\degres).} |
|---|
| 165 |
\label{unicolore} |
|---|
| 166 |
\end{figure} |
|---|
| 167 |
\par Enfin, on dispose de l'option \verb!maillage! (positionnée par défaut à |
|---|
| 168 |
\verb!false!) qui permet l'affichage des méridiens et parallèles |
|---|
| 169 |
(Figure \ref{meridien}). En latitude, le pas est de 10\degres\ alors |
|---|
| 170 |
qu'en longitude, il est de 5\degres. |
|---|
| 171 |
\begin{figure}[ht] |
|---|
| 172 |
\centering |
|---|
| 173 |
\includegraphics[scale=0.7]{oceaniemeridien.png} |
|---|
| 174 |
\caption{Méridiens et parallèles ($\theta=120$\degres; $\phi=-20$\degres).} |
|---|
| 175 |
\label{meridien} |
|---|
| 176 |
\end{figure} |
|---|
| 177 |
\par Les données ont conservé leur présentation d'origine : elles |
|---|
| 178 |
sont sous la forme de points repérés en coordonnées sphériques par la |
|---|
| 179 |
latitude et la longitude; l'unité choisie étant la minute pour |
|---|
| 180 |
davantage de précision.\\Tous les fichiers sont regroupés dans un |
|---|
| 181 |
sous-répertoire \verb!data!. Par défaut, \verb!arborescence! (qui est |
|---|
| 182 |
un type \verb!string! de \MP) est réglé sur ce dossier\footnote{Pour |
|---|
| 183 |
un changement, ne pas oublier le \verb!/! au bout du chemin :\\ |
|---|
| 184 |
\verb! |
|---|
| 185 |
arborescence:="../data/"; |
|---|
| 186 |
! |
|---|
| 187 |
}. |
|---|
| 188 |
\subsection{Méthodes pour la représentation spatiale} |
|---|
| 189 |
Pour la représentation, le principe général est le suivant : |
|---|
| 190 |
\begin{itemize} |
|---|
| 191 |
\item on lit les fichiers un à un; |
|---|
| 192 |
\item pour chaque point lu, on teste s'il s'agit d'un point visible |
|---|
| 193 |
ou pas. S'il est visible, on l'affiche sinon on passe au suivant. |
|---|
| 194 |
\end{itemize} |
|---|
| 195 |
Le nombre de points étant assez conséquent, il faut impérativement le |
|---|
| 196 |
réduire. Pour cela, en fonction de la position de l'observateur, on |
|---|
| 197 |
détermine les latitudes minimale et maximale que l'observateur peut |
|---|
| 198 |
voir. |
|---|
| 199 |
\begin{figure}[ht] |
|---|
| 200 |
\centering |
|---|
| 201 |
\includegraphics{latminmax-1.pdf} |
|---|
| 202 |
\caption{Détermination des latitudes minimales et maximales de vision.} |
|---|
| 203 |
\end{figure} |
|---|
| 204 |
\par On a alors un premier test : {\em si la l'attitude du point lu est |
|---|
| 205 |
comprise entre les valeurs \ding{172} et \ding{173} alors on |
|---|
| 206 |
continue; sinon on passe au suivant.} |
|---|
| 207 |
\\Le deuxième test est, quant à lui, sur la visibilité (ou |
|---|
| 208 |
l'invisibilité) du point. Pour ce faire, on teste le produit scalaire |
|---|
| 209 |
des vecteurs $\vecteur{HP}$ et $\vecteur{HA}$ ($A$ étant la position |
|---|
| 210 |
de l'observateur). {\em S'il est positif alors le point est vu, s'il est |
|---|
| 211 |
négatif alors le point est invisible.} |
|---|
| 212 |
\begin{figure}[ht] |
|---|
| 213 |
\centering |
|---|
| 214 |
\includegraphics{vuoupasvu-1.pdf} |
|---|
| 215 |
\caption{Vu ou pas vu ?} |
|---|
| 216 |
\end{figure} |
|---|
| 217 |
\par La suite fût plus laborieuse : le remplissage des différents pays. Une |
|---|
| 218 |
première idée : |
|---|
| 219 |
\begin{itemize} |
|---|
| 220 |
\item tester chaque point des frontières; |
|---|
| 221 |
\item si le point est vu, on le garde sinon on passe au suivant. |
|---|
| 222 |
\end{itemize} |
|---|
| 223 |
Je peux vous dire que certains pays deviennent alors très anguleux ! |
|---|
| 224 |
\par La deuxième idée, qui est celle retenue, n'est pas très |
|---|
| 225 |
orthodoxe, je dois bien le dire ! Mais elle fonctionne :) |
|---|
| 226 |
\begin{itemize} |
|---|
| 227 |
\item tester chaque point des frontières; |
|---|
| 228 |
\item si le point est vu, on le garde sinon on le remplace par {\em un |
|---|
| 229 |
point dont les coordonnées cartésiennes sont les doubles de celle du |
|---|
| 230 |
point étudié.} |
|---|
| 231 |
\end{itemize} |
|---|
| 232 |
Pourquoi ? Afin de faire sortir tous les points invisibles du cercle |
|---|
| 233 |
de vision. Ainsi, après le remplissage, on {\em clippe} le tout dans |
|---|
| 234 |
le cercle de vision. Et le tour est joué ! |
|---|
| 235 |
\begin{figure}[ht] |
|---|
| 236 |
\centering |
|---|
| 237 |
\includegraphics[scale=0.3]{exemplemanuel-1.pdf} |
|---|
| 238 |
\caption{Méthode pour remplir correctement les pays.} |
|---|
| 239 |
\end{figure} |
|---|
| 240 |
\subsection{Dernières remarques} |
|---|
| 241 |
\begin{center} |
|---|
| 242 |
\begin{Danger} |
|---|
| 243 |
Cette section n'est valable que pour la représentation spatiale. |
|---|
| 244 |
\end{Danger} |
|---|
| 245 |
\end{center} |
|---|
| 246 |
On peut régler la distance au centre de la sphère et la |
|---|
| 247 |
distance à l'écran en modifiant les valeurs de la macro |
|---|
| 248 |
\verb!Initialisation!. Cependant, je crois que les valeurs par défaut |
|---|
| 249 |
(respectivement égales à 5 et 750) sont correctes pour obtenir des |
|---|
| 250 |
images satisfaisantes. Ce n'est qu'une opinion personnelle :) Une |
|---|
| 251 |
explication un peu plus persuasive : \MP\ n'est pas le meilleur |
|---|
| 252 |
lorsqu'il s'agit de faire des calculs; en changeant ces valeurs, le |
|---|
| 253 |
résultat peut alors devenir très déroutant\ldots |
|---|
| 254 |
\\On peut également régler le rayon de la sphère terrestre en |
|---|
| 255 |
changeant le paramètre \verb!rayon! qui doit rester inférieur à la |
|---|
| 256 |
distance au centre de la sphère. |
|---|
| 257 |
\par Voici pour finir une dernière image et son code source : |
|---|
| 258 |
\begin{verbatim} |
|---|
| 259 |
input mp-geo; |
|---|
| 260 |
|
|---|
| 261 |
fleuves:=false; |
|---|
| 262 |
lacs:=false; |
|---|
| 263 |
capitales:=false; |
|---|
| 264 |
Mappemonde(0,-90); |
|---|
| 265 |
|
|---|
| 266 |
end |
|---|
| 267 |
\end{verbatim} |
|---|
| 268 |
\begin{figure}[ht] |
|---|
| 269 |
\centering |
|---|
| 270 |
\includegraphics[scale=0.7]{polesud} |
|---|
| 271 |
\caption{L'immensité du pôle sud ($\theta=0$; $\phi=90$\degres).} |
|---|
| 272 |
\end{figure} |
|---|
| 273 |
Ooops ! une petite dernière\ldots\footnote{Ne cherchez pas après les |
|---|
| 274 |
fonctionnalités pour la transparence, elles ne sont pas implémentées |
|---|
| 275 |
dans le package; elles ne sont valables que dans des cas |
|---|
| 276 |
particuliers\ldots} |
|---|
| 277 |
\begin{figure}[ht] |
|---|
| 278 |
\centering |
|---|
| 279 |
\includegraphics{globetransparent.png} |
|---|
| 280 |
\caption{Un peu de transparence.} |
|---|
| 281 |
\end{figure} |
|---|
| 282 |
\section{Projections planes} |
|---|
| 283 |
Ces projections permettent de représenter la Terre sur une surface |
|---|
| 284 |
plane. Quelques projections sont mises en places afin d'avoir la |
|---|
| 285 |
possibilité de produire des cartes. |
|---|
| 286 |
\par En plus des options \verb!lacs!, \verb!fleuves!, \verb!capitales!, |
|---|
| 287 |
\verb!noncolore! et \verb!maillage!, on dispose de l'option |
|---|
| 288 |
\verb!projection!\footnote{Qui est un type \verb!string! de \MP} qui |
|---|
| 289 |
peut prendre les valeurs \verb!mercator!, \verb!coniqueh!, |
|---|
| 290 |
\verb!coniqueb!, \verb!cylindrique!, \verb!simple!\footnote{Si un point de la sphère terrestre est représentée |
|---|
| 291 |
par ses coordonnées géographiques $(\phi;\lambda)$ en degrés alors les |
|---|
| 292 |
formules de projection sont |
|---|
| 293 |
\[\left\{\begin{array}{l} |
|---|
| 294 |
x=\lambda-\lambda_0\\ |
|---|
| 295 |
y=\phi-\phi_0\\ |
|---|
| 296 |
\end{array} |
|---|
| 297 |
\right.\] |
|---|
| 298 |
où $(\phi_0;\lambda_0)$ sont les coordonnées géographiques du centre |
|---|
| 299 |
de la future projection.} et \verb!bonne! (la valeur par défaut |
|---|
| 300 |
étant \verb!non!). La syntaxe utilisée sera donc |
|---|
| 301 |
\begin{verbatim} |
|---|
| 302 |
projection:="mercator" |
|---|
| 303 |
\end{verbatim} |
|---|
| 304 |
Cependant, cette option est automatiquement modifiée par l'appel de la |
|---|
| 305 |
macro traçant la projection plane. Il ne faudra pas oublier de la |
|---|
| 306 |
repositionner à \verb!non! si l'on veut faire plusieurs figures |
|---|
| 307 |
différentes au sein d'un même fichier \MP, par exemple une mappemonde |
|---|
| 308 |
et une projection plane. |
|---|
| 309 |
\subsection{Projection Mercator} |
|---|
| 310 |
Plutôt qu'un long discours, voici |
|---|
| 311 |
le code\footnote{On a repris la syntaxe de \verb!geometriesyr16!; |
|---|
| 312 |
\verb!figure! créant un cadre enfermant la figure obtenue.} |
|---|
| 313 |
permettant d'appeller une représentation plane selon la projection |
|---|
| 314 |
Mercator\footnote{Si un point de la sphère terrestre est représentée |
|---|
| 315 |
par ses coordonnées géographiques $(\phi;\lambda)$ en degrés alors les |
|---|
| 316 |
formules de projection sont |
|---|
| 317 |
\[\left\{\begin{array}{l} |
|---|
| 318 |
x=\lambda-\lambda_0\\ |
|---|
| 319 |
\\ |
|---|
| 320 |
y=\ln\left(\tan\left(45+\dfrac\phi2\right)\right)-\ln\left(\tan\left(45+\dfrac{\phi_0}2\right)\right)\\ |
|---|
| 321 |
\end{array} |
|---|
| 322 |
\right.\] |
|---|
| 323 |
où $(\phi_0;\lambda_0)$ sont les coordonnées géographiques du centre |
|---|
| 324 |
de la future projection.} |
|---|
| 325 |
centrée sur le point de coordonnées |
|---|
| 326 |
(3\degres;48\degres)\footnote{On reconnaît les coordonnées sphériques |
|---|
| 327 |
de notre belle capitale Paris.} avec un zoom égal à 30 (le temps de |
|---|
| 328 |
compilation est de 27 secondes\footnote{Il faudrait implémenter une |
|---|
| 329 |
option permettant de choisir tel ou tel continent\ldots}). |
|---|
| 330 |
\begin{verbatim} |
|---|
| 331 |
input mp-geo; |
|---|
| 332 |
|
|---|
| 333 |
figure(-10u,-10u,10u,10u); |
|---|
| 334 |
Mercator(3,48,30); |
|---|
| 335 |
fin; |
|---|
| 336 |
|
|---|
| 337 |
end |
|---|
| 338 |
\end{verbatim} |
|---|
| 339 |
\begin{figure}[h] |
|---|
| 340 |
\centering |
|---|
| 341 |
\includegraphics{Mercator.png} |
|---|
| 342 |
\caption{Carte de France selon une projection Mercator.} |
|---|
| 343 |
\end{figure} |
|---|
| 344 |
Une possibilité est offerte d'afficher certaines villes {\em |
|---|
| 345 |
françaises}\footnote{En espérant pouvoir le faire pour un maximum de |
|---|
| 346 |
pays et que ce soit disponible également pour la représentation |
|---|
| 347 |
spatiale.} en ajoutant |
|---|
| 348 |
\begin{verbatim} |
|---|
| 349 |
Lecturevillesp("France"); |
|---|
| 350 |
\end{verbatim} |
|---|
| 351 |
\subsection{Projection cylindrique} |
|---|
| 352 |
Avec le code |
|---|
| 353 |
\begin{verbatim} |
|---|
| 354 |
input mp-geo; |
|---|
| 355 |
|
|---|
| 356 |
maillage:=true; |
|---|
| 357 |
|
|---|
| 358 |
figure(-10u,-10u,10u,10u); |
|---|
| 359 |
Cylindrique(3,48,15); |
|---|
| 360 |
Lecturevillesp("France"); |
|---|
| 361 |
fin; |
|---|
| 362 |
|
|---|
| 363 |
end |
|---|
| 364 |
\end{verbatim} |
|---|
| 365 |
on obtient la carte en projection cylindrique\footnote{Pour un point |
|---|
| 366 |
de la sphère terrestre de coordonnées $(\phi;\lambda)$, les formules |
|---|
| 367 |
de projection sont |
|---|
| 368 |
\[\left\{\begin{array}{l} |
|---|
| 369 |
x=\lambda-\lambda_0\\ |
|---|
| 370 |
\\ |
|---|
| 371 |
y=\sin\phi-\sin\phi_0\\ |
|---|
| 372 |
\end{array} |
|---|
| 373 |
\right. |
|---|
| 374 |
\] où $(\phi_0;\lambda_0)$ sont les coordonnées géographiques du centre |
|---|
| 375 |
de la future projection.}. |
|---|
| 376 |
\begin{figure}[ht] |
|---|
| 377 |
\centering |
|---|
| 378 |
\includegraphics{Cylindrique.png} |
|---|
| 379 |
\caption{Carte de France selon la projection cylindrique.} |
|---|
| 380 |
\end{figure} |
|---|
| 381 |
\subsection{Projection de Bonne} |
|---|
| 382 |
Cette projection\footnote{Pour un point de la sphère terrestre de |
|---|
| 383 |
coordonnées $(\phi;\lambda)$, les formules de projection sont |
|---|
| 384 |
\[\left\{\begin{array}{l} |
|---|
| 385 |
x=\rho\sin E\\ |
|---|
| 386 |
\\ |
|---|
| 387 |
y=\textrm{cotan}\phi_0-\rho\cos E\\ |
|---|
| 388 |
\end{array} |
|---|
| 389 |
\right. |
|---|
| 390 |
\] |
|---|
| 391 |
avec $\rho=\textrm{cotan}\phi_0+\phi_0-\phi$ et |
|---|
| 392 |
$E=(\lambda-\lambda_0)*cos(\phi)/\rho$ où $(\phi_0;\lambda_0)$ sont |
|---|
| 393 |
les coordonnées du centre de la future projection. Attention, dans |
|---|
| 394 |
ces formules, tous les angles doivent être en radians} est |
|---|
| 395 |
particulière, elle est en forme de \og coeur\fg. Ce qui donne |
|---|
| 396 |
\begin{figure}[ht] |
|---|
| 397 |
\centering |
|---|
| 398 |
\includegraphics{Bonne.png} |
|---|
| 399 |
\caption{Projection de Bonne} |
|---|
| 400 |
\end{figure} |
|---|
| 401 |
avec le code source (pour 28 secondes de compilation) |
|---|
| 402 |
\begin{verbatim} |
|---|
| 403 |
input mp-geo; |
|---|
| 404 |
|
|---|
| 405 |
maillage:=true; |
|---|
| 406 |
capitales:=false; |
|---|
| 407 |
|
|---|
| 408 |
figure(-10u,-15u,10u,10u); |
|---|
| 409 |
Bonne(0,40,1); |
|---|
| 410 |
fin; |
|---|
| 411 |
|
|---|
| 412 |
end |
|---|
| 413 |
\end{verbatim} |
|---|
| 414 |
dans lequel \verb!0,40! représentent $(\lambda_0;\phi_0)$, 1 étant le |
|---|
| 415 |
facteur de zoom. |
|---|
| 416 |
\subsection{Nouvelle méthode} |
|---|
| 417 |
Avec le développement de ces projections, on s'aperçoit qu'elles ont |
|---|
| 418 |
toutes le même fonctionnement en commun. Aussi, depuis la version |
|---|
| 419 |
\texttt{0.60}, une autre méthode\footnote{Ne vous inquiétez pas : |
|---|
| 420 |
pour des soucis de compatibilité, les autres moyens de projection |
|---|
| 421 |
ont été conservés.} a été implantée. |
|---|
| 422 |
\par En effet, il me semble plus simple de procéder de la manière |
|---|
| 423 |
suivante : |
|---|
| 424 |
\begin{verbatim} |
|---|
| 425 |
input mp-geo; |
|---|
| 426 |
|
|---|
| 427 |
figure(-10u,-10u,10u,10.5u); |
|---|
| 428 |
projection:="bonne"; |
|---|
| 429 |
Projection(0,41,50); |
|---|
| 430 |
Lecturevillesp("France"); |
|---|
| 431 |
fin; |
|---|
| 432 |
|
|---|
| 433 |
end |
|---|
| 434 |
\end{verbatim} |
|---|
| 435 |
Ceci afin d'alléger un peu les commandes à connaître. Un autre |
|---|
| 436 |
avantage est de choisir simplement le mode de projection choisi. |
|---|
| 437 |
\par Pour la création des cartes, il fallait, jusqu'à cette version |
|---|
| 438 |
\texttt{0.60}, parcourir tous les points de la planète pour ne garder |
|---|
| 439 |
que ceux intéressants.\\Dorénavant, les paramètres \verb!Amnord!, |
|---|
| 440 |
\verb!Amsud!, \verb!Amcentrale!, \verb!Caraibes!, \verb!Asie!, |
|---|
| 441 |
\verb!Europe!, \verb!Afrique! et \verb!All! font leurs |
|---|
| 442 |
apparitions. Par défaut, ils sont tous positionnés à \verb!false! sauf |
|---|
| 443 |
\verb!All!. Autrement, le comportement par défaut est celui qui prend |
|---|
| 444 |
le plus de temps ! |
|---|
| 445 |
Aussi, on prendra soin de changer certains de ces positionnements pour |
|---|
| 446 |
obtenir des temps de compilation moins grands. |
|---|
| 447 |
\subsection{Cartes et échelles} |
|---|
| 448 |
Pour pouvoir lire correctement une carte obtenue par |
|---|
| 449 |
projection\footnote{Uniquement les projections déjà vues, c'est-à-dire |
|---|
| 450 |
\verb!simple!, \verb!cylindrique!, \verb!mercator! et \verb!bonne!}, il |
|---|
| 451 |
m'a semblé nécessaire d'y adjoindre une échelle. On ne peut avoir |
|---|
| 452 |
qu'une échelle moyenne; sinon il faudrait déterminer l'échelle de |
|---|
| 453 |
chaque parallèle ou méridien. |
|---|
| 454 |
\par Aussi, la méthode choisie est la suivante : |
|---|
| 455 |
\begin{itemize} |
|---|
| 456 |
\item Supposons que la projection soit centrée sur le point |
|---|
| 457 |
$(\lambda_0;\theta_0)$; on détermine alors la longueur {\em réelle} |
|---|
| 458 |
de l'arc de parallèle situé entre les points $(\lambda_0;\theta_0)$ |
|---|
| 459 |
et $(\lambda_0;\theta_0+5\mbox{\degres})$; |
|---|
| 460 |
\item on détermine ensuite cette même longueur mais {\em sur le dessin}; |
|---|
| 461 |
\item on termine par une simple relation de proportionnalité. |
|---|
| 462 |
\end{itemize} |
|---|
| 463 |
On utilisera donc la syntaxe \verb!echelle(2,46.5,50)! pour un calcul |
|---|
| 464 |
d'échelle de 1~cm pour 50~km pour une projection centrée sur le point $(46,5;2)$. |
|---|
| 465 |
\begin{verbatim} |
|---|
| 466 |
input mp-geo; |
|---|
| 467 |
|
|---|
| 468 |
All:=false; |
|---|
| 469 |
Europe:=true; |
|---|
| 470 |
|
|---|
| 471 |
figure(-10u,-10u,10u,10.5u); |
|---|
| 472 |
projection:="bonne"; |
|---|
| 473 |
Projection(2,46.5,echelle(2,46.5,50)); |
|---|
| 474 |
fin; |
|---|
| 475 |
|
|---|
| 476 |
end |
|---|
| 477 |
\end{verbatim} |
|---|
| 478 |
pour obtenir la figure |
|---|
| 479 |
\begin{figure}[ht] |
|---|
| 480 |
\centering |
|---|
| 481 |
\includegraphics{projectionbonne} |
|---|
| 482 |
\caption{Projection de Bonne -- Centrée sur Paris -- \'Echelle $1\,:\,500\,000$.} |
|---|
| 483 |
\end{figure} |
|---|
| 484 |
\subsection{Projection conique} |
|---|
| 485 |
Cette projection est un peu spéciale, je n'ai pas réussi à l'inclure |
|---|
| 486 |
avec les autres. La projection conique disponible est la {\em |
|---|
| 487 |
projection conique équidistante tangente}\footnote{D'après |
|---|
| 488 |
\url{http://thierry.hatt.gps.free.fr/projections/images-proj/coniq-equid-lambert.htm}. Pour un point de la sphère terrestre de coordonnées $(\phi;\lambda)$, les formules de projection sont |
|---|
| 489 |
\[\left\{\begin{array}{l} |
|---|
| 490 |
x=\dfrac{\cos\phi\sin(\lambda\sin(45))}{\sin{45}\cos(\phi-45)}\\ |
|---|
| 491 |
\\ |
|---|
| 492 |
y=\dfrac{\cos\phi\cos(\lambda\sin(45))}{\sin{45}\cos(\phi-45)}\\ |
|---|
| 493 |
\end{array} |
|---|
| 494 |
\right. |
|---|
| 495 |
\] |
|---|
| 496 |
}; le parallèle de contact étant soit le 45\degres\ Nord soit le |
|---|
| 497 |
45\degres\ Sud. On choisit l'hémisphère à représenter par le code |
|---|
| 498 |
source |
|---|
| 499 |
\begin{verbatim} |
|---|
| 500 |
input mp-geo; |
|---|
| 501 |
|
|---|
| 502 |
figure(-20u,-20u,20u,20u); |
|---|
| 503 |
ConiqueH; |
|---|
| 504 |
fin; |
|---|
| 505 |
|
|---|
| 506 |
end |
|---|
| 507 |
\end{verbatim} |
|---|
| 508 |
pour obtenir |
|---|
| 509 |
\begin{figure}[ht] |
|---|
| 510 |
\centering |
|---|
| 511 |
\includegraphics{coniqueHN.png} |
|---|
| 512 |
\caption{Projection conique - Hémisphère nord.} |
|---|
| 513 |
\end{figure} |
|---|
| 514 |
ou alors |
|---|
| 515 |
\begin{verbatim} |
|---|
| 516 |
input mp-geo; |
|---|
| 517 |
|
|---|
| 518 |
figure(-20u,-20u,20u,20u); |
|---|
| 519 |
ConiqueB; |
|---|
| 520 |
fin; |
|---|
| 521 |
|
|---|
| 522 |
end |
|---|
| 523 |
\end{verbatim} |
|---|
| 524 |
pour voir l'hémisphère sud. |
|---|
| 525 |
\begin{figure}[ht] |
|---|
| 526 |
\centering |
|---|
| 527 |
\includegraphics{coniqueBS.png} |
|---|
| 528 |
\caption{Projection conique - Hémisphère sud.} |
|---|
| 529 |
\end{figure} |
|---|
| 530 |
\par\`A noter que cette fois-ci, le maillage n'est pas |
|---|
| 531 |
facultatif\footnote{On pourrait peut-être ajouter des graduations}. |
|---|
| 532 |
\newpage |
|---|
| 533 |
\section{Historique} |
|---|
| 534 |
\begin{description} |
|---|
| 535 |
\item[24/03/2008] Version \texttt{0.60} : Regroupement des |
|---|
| 536 |
projections. Ajout d'une échelle sur les cartes obtenues par |
|---|
| 537 |
projection. Ajout des grands fleuves (ou rivières) européens. |
|---|
| 538 |
\item[14/03/2008] Version \texttt{0.58} : Ajout de fleuves et lacs |
|---|
| 539 |
supplémentaires. |
|---|
| 540 |
\item[14/03/2008] Version \texttt{0.56} : Ajout des volcans :). |
|---|
| 541 |
\item[18/02/2008] Version \texttt{0.55} : Ajout des projections de Bonne. |
|---|
| 542 |
\item[18/02/2008] Version \texttt{0.54} : Modification mineure dans la |
|---|
| 543 |
lecture des fichiers de données. |
|---|
| 544 |
\item[15/02/2008] Version \texttt{0.53} : Ajout d'une troisième |
|---|
| 545 |
projection : la projection {\em simple}. |
|---|
| 546 |
\item[15/02/2008] Version \texttt{0.52} : Ajout d'une troisième |
|---|
| 547 |
projection : la projection {\em cylindrique}. |
|---|
| 548 |
\item[14/02/2008] Version \texttt{0.51} : Ajout d'une deuxième |
|---|
| 549 |
projection : une projection {\em conique}. |
|---|
| 550 |
\item[14/02/2008] Version \texttt{0.5} : Ajout d'une première |
|---|
| 551 |
projection : la projection {\em Mercator}. |
|---|
| 552 |
\item[12/02/2008] Version \texttt{0.46} : Possibilité d'affichage d'un |
|---|
| 553 |
point particulier sur la surface de la Terre (avec son méridien et |
|---|
| 554 |
son parallèle tracés). |
|---|
| 555 |
\item[12/02/2008] Version \texttt{0.45} : Choix possible de |
|---|
| 556 |
l'affichage ou non des méridiens et parallèles. |
|---|
| 557 |
\item[11/02/2008] Version \texttt{0.4} : Rendu indépendant de |
|---|
| 558 |
\verb!geometriesyr16.mp!. |
|---|
| 559 |
\item[08/02/2008] Version \texttt{0.35} : Amélioration de la méthode |
|---|
| 560 |
de tracé. |
|---|
| 561 |
\item[08/02/2008] Version \texttt{0.32} : Choix possible du chemin de |
|---|
| 562 |
lecture des fichiers \verb!.dat!. |
|---|
| 563 |
\item[08/02/2008] Version \texttt{0.31} : Choix possible de la couleur |
|---|
| 564 |
de remplissage dans le cas d'un remplissage uniforme. |
|---|
| 565 |
\item[07/02/2008] Version \texttt{0.3} : Choix possibles d'un |
|---|
| 566 |
affichage ou non des capitales, fleuves et lacs. Choix possible d'un |
|---|
| 567 |
remplissage uniforme ou coloré. |
|---|
| 568 |
\item[07/02/2008] Version \texttt{0.2} : Création d'un unique fichier |
|---|
| 569 |
de données par continent. |
|---|
| 570 |
\item[07/02/2008] Version \texttt{0.11} : Ajout du positionnement des |
|---|
| 571 |
capitales. |
|---|
| 572 |
\item[06/02/2008] Version \texttt{0.1}. |
|---|
| 573 |
\end{description} |
|---|
| 574 |
\newpage |
|---|
| 575 |
\listoffigures |
|---|
| 576 |
\end{document} |
|---|