3.4) Codage des images et animations radar :
Avant de pouvoir afficher les images à l'écran, il
faut d'abord les construire à partir des données de la banque
BADORA.
a) Passage du repère polaire au repère
cartésien :
Les données qui sont stockées dans la base
permettent de construire des images dans un repère polaire
c'est-à-dire dans un cercle autour du radar. Etant donné que le
repère dans une interface graphique en Java est cartésien il
fallait transformer les coordonnées des points à afficher (Figure
10).
Repère polaire Repère cartésien en
Java
0°
Figure 10 : Représentation des deux
repères graphiques
90°
y
x
On passe donc d'un repère polaire où les points
sont dessinés grâce à l'angle de la radiale et la distance
du point par rapport au centre du cercle à un repère
cartésien où les coordonnées d'un point sont
exprimées avec un x et un y (abscisse et ordonnée).
Pour passer du repère polaire au repère
cartésien, il faut alors effectuer les transformations suivantes :
- transformer les coordonnées des points pour les
exprimer avec une abscisse et une ordonnée.
- translation des points pour qu'ils aient tous des
coordonnées positives.
(1) Pour plus de détails sur l'architecture du programme
et les différentes classes crées voir la description des classes
en Annexe 1 page 36
b) Création et affichage des images :
Une fois les coordonnées des points
transformées, les images sont dessinées grâce à la
fonction "paintComponent". Cette fonction de la classe Jpanel permet de
dessiner directement sur le panneau et gère le rafraîchissement de
la fenêtre. Chacun des points dessinés représente une porte
de l'image et suivant la réflectivité enregistrée pour
cette porte, la couleur du point sera différente. Ainsi chaque point est
dessiné sur le panneau suivant ses coordonnées et sa couleur.
Ensuite sont rajoutés des cercles concentriques qui
permettent d'évaluer les distances sur l'image, chaque cercle
étant distant de 50 Km. Trois résolutions d'image sont possibles
: rayon représentant 100 Km (Figure 11), 250 Km ou 350 Km (Figure
12).
Figure 11 : Image radar avec une Figure 12 : Image radar
avec une
résolution sur 100 Km résolution sur 350
Km
Les images radar sont donc dessinées à la
volée dans un buffer (1) (classe BufferedImage en Java) puis
affichées à l'écran ce qui permet d'aller plus vite que si
on les dessinait directement à l'écran. Il est ensuite possible
d'enregistrer ces images au format PNG grâce à l'option
"Enregistrer image" du menu Fichier.
La librairie "PngEncoder" permet de fabriquer une image PNG
à partir de l'image stockée dans le buffer grâce à
un algorithme d'encodage. La conversion d'une image au format PNG est un peu
plus longue que le fait d'afficher une image créée à la
volée à l'écran mais cela n'est pas très
gênant puisque l'utilisateur ne va pas enregistrer chaque image mais une
image de temps en temps s'il en a besoin.
(1) Un "buffer" est un tampon dans la mémoire vive et
permet de stocker temporairement des données.
|