Le fichier de description contient des informations permettant d'afficher la position courante sur le ciel correspondant à la position du curseur de la souris.
Il s'agit des coordonnées (dans le repère de l'image ET sur le ciel) des 4 coins de l'image, eg:
<?xml version="1.0"?>
<query target="antennae" imtype="color">
<corners>
<!-- C0 -->
<corner>
<skycoord>180.4992 -18.87437</skycoord>
<imcoord>0 0</imcoord>
</corner>
<!-- C1 -->
<corner>
<skycoord>180.48445 -18.8978</skycoord>
<imcoord>0 887</imcoord>
</corner>
<!-- C2 -->
<corner>
<skycoord>180.44174 -18.874</skycoord>
<!-- cette valeur permet de recuperer les dimensions de l'image -->
<imcoord>1710 887</imcoord>
</corner>
<!-- C3 -->
<corner>
<skycoord>180.45649 -18.85</skycoord>
<imcoord>1710 0</imcoord>
</corner>
</corners>
<link type="image">http://cdsweb.u-strasbg.fr/~boch/flex/antennae-color.png</link>
<link type="simbad">http://cdsweb.u-strasbg.fr/~boch/flex/simbad-antennae-color.xml</link>
</query>
Pour le calcul des coordonnées (alpha, delta) correspondant à la position du curseur, on se place dans le cadre d'une approximation linéaire qui devait être suffisante dans le contexte "simple visualiseur"
Dans le repère de l'image, l'axe des X croit positivement vers la droite, l'axe des Y croit positivement vers le bas.
Appelons
C0, C1, C2, C3 les
4 coins de l'image. C0 correspond au coin supérieur gauche, C1 au coin inférieur gauche, C2 au coin inférieur droit et C3 au coin supérieur droit.
Appelons
(alpha_i, delta_i) les
coordonnées sur le ciel du coin Ci.
Appelons par ailleurs
(xi, yi) les
coordonnées dans le repère image du coin Ci. C0 est l'origine du repère image et a toujours pour coordonnées (0, 0). Les valeurs de x2 et y2 permettent de récupérer les dimensions de l'image. Pour simplifier, on notera
W (width) = x2 et
H (height) = y2
Pour tout point (x,y) de l'image, les coordonnées (alpha, delta) sur le ciel sont données par :
alpha = alpha_0 + (x/W)*(alpha_3-alpha_0) + (y/H)*(alpha_1-alpha_0)
delta = delta_0 + (x/W)*(delta_3-delta_0) + (y/H)*(delta_1-delta_0)
--
ThomasBoch - 06 Feb 2009