WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Badora


par Stéphane Clerc
UPMF - Grenoble - IUT II 2003
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

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

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.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Soit réservé sans ostentation pour éviter de t'attirer l'incompréhension haineuse des ignorants"   Pythagore