Changer de système
de coordonnées, c'est changer d'échelle et redéfinir
les coordonnées d'un point repère, centre géométrique
de la carte ou bord supérieur gauche du cadre fictif qui
l'entoure. Par exemple, la région Midi-Pyrénées
fait en gros 305 km de largeur pour 270 km de hauteur. Si l'on
veut la caser dans un carré de 1 000 pixels de large, on
se calera sur l'encombrement maximum en km, soit 305, et on multipliera
par 1 000/305. A l'arrivée, un pixel vaut 305/1 000
km, soit 305 m.
Supposons par ailleurs, par commodité, que Toulouse soit
au centre de la carte. Dans la projection Lambert II, les coordonnées
du Capitole sont en gros, en mètres (x0c=528 400,
y0c=1 844 600). A l'arrivée, elles seront, en pixels
(x1c=500, y1c=500).
Les distances d'un point quelconque au centre sont dans le même
rapport que les largeurs dans les deux systèmes de coordonnées
: (x1-x1c)/(x0-x0c)=1 000/305. La formule de changement de
coordonnées s'en déduit, pour un point de coordonnées
(x0,y0) en Lambert II et (x1,y1) à l'arrivée dans
le système écran.
Soit si l'on définit e=1 000/305 :
x1 = x1c + e*(x0-x0c)
Mais dans le système écran, l'axe des ordonnées
est orienté vers le bas, car l'origine se situe conventionnellement
au coin supérieur gauche. Par conséquent, la formule
pour les ordonnées devient :
y1=y1c - e*(y0-y0c)
Pour convertir les coordonnées,
on suit donc les étapes suivantes :
1) appliquer une projection cartésienne (coordonnées
par exemple en mètres, mais pas en degrés) ;
2) déterminer le rectangle d'encombrement de la carte et
le maximum entre la largeur et la hauteur ;
3) en déduire le facteur d'échelle ;
4) appliquer les formules ci-dessus.
astuces pour optimiser
le dessin dans Flash
:
Considérant qu'à l'écran une précision
d'un dixième de pixel est suffisante, on s'emploiera à
ne garder qu'un chiffre après la virgule, ce qui allègera
d'autant le fichier des coordonnées à transmettre
: la chasse au kilooctet est une obsession constante pour qui
se soucie de proposer des contenus confortables à un public
large.
Dans le même ordre d'idée,
une astuce courante consiste à décrire chaque polygone
en alternant coordonnées absolues et coordonnées
relatives.
Soit par exemple, en coordonnées écran, un carré
défini par le vecteur de ses abscisses [600,610,610,600]
et de ses ordonnées [400,410,410,400]. On les remplacera
avantageusement par [600,10,0,-10] et [400,10,0,-10], le nombre
de caractères diminuant de 3+3=6. Le premier point est
décrit en coordonnées absolues (600,400), les suivants
en déplacement par rapport au point précédent.
Plus compact, même, en oubliant le dernier point qui se
confond ici avec le premier : [600,10,0] et [400,10,0].
|