next up previous contents
Next: Recherche des objets centraux Up: Tutorial Previous: Affichage d'un champ

Lecture de position

La fonction gsc_get_cursor() permet la lecture de coordonnées équatorialles alors que gsc_get_xy() permet la lecture de coordonnées écrans. Dans les deux cas xgsc répond au client lorsque:

  1. le bouton central de la souris a été cliqué. Le curseur se centre sur l'objet la plus proche et renvoie les coordonnées de cet objet. OK=1.
  2. le bouton de droite de la souris a été cliqué, l'opération est annulée, OK=0.
  3. la barre d'espacement du clavier a été enfoncée, le curseur reste immobile et ce sont les coordonnées du curseur qui sont renvoyée. OK=1.

Le boutton de gauche sert à lire les paramètres des objets du champs tout en restant dans le mode lecture.

Exemple:

 
   struct gop_connect *connect_gsc;
   float               alpha, delta, magnitude;
   char                calpha[20], cdelta[20];
   char                message[80];
   int                 ok;
   ...
   if (gsc_client(connect_gsc, actual_status, option, delay, repeat)
                 != GOP_OK){...}
   ...
   if(gsc_plot(connect_gsc) != GOP_OK) {...}
   ...
   if(gsc_get_cursor(connect_gsc, &alpha, &delta, calpha, cdelta, &magnitude, 
              message, &ok) != GOP_OK) {...}
   ...
Cet appel retourne alpha et delta en degré d'arc ainsi qu'en DegMinSec et HeuMinSec dans calpha et cdelta, la magnitude, le flag de sortie ansi qu'un message complet formatté contenant la position et la magnitude.

L'utilisation de gsc_get_xy() permet de récupérer les coordonnées X-Y du curseur en postition pixel, ainsi que les paramètres de l'équation de la projection plan-tangent. (voir src/subgsc/coord.f). Exemple:

 
   struct gop_connect *connect_gsc;
   float              x, y, ax, bx, ay, by, x0, y0, a0, d0;
   int                ok;

   if (gsc_client(connect_gsc, actual_status, option, delay, repeat)
                 != GOP_OK){...}
   ...
   if(gsc_plot(connect_gsc) != GOP_OK) {...}
   ...
   if(gsc_get_xy(connect_gsc, &x, &y, &ax, &bx, &ay, &by,
                 &x0, &y0, &a0, &d0, &ok) != GOP_OK) {...}


WEBER Luc
Mon May 10 13:40:23 MET DST 1999