PROCEDE DE GESTION DE LIGNES GRAPHIQUES
Le domaine de l'invention est celui des bibliothèques graphiques fournissant des fonctions graphiques utilisées pour le tracé d'images symbologiques. Un des domaines d'application privilégiée est la génération d'images symbologiques pour le pilotage des aéronefs. Ces images sont notamment utilisées pour la navigation, le pilotage et la gestion des systèmes critiques, comme les contrôles moteurs.
Les images graphiques sont générées sur des écrans matriciels, comme, par exemple, des afficheurs à cristaux liquides. La génération de l'image graphique se fait de la façon suivante : on remplit une mémoire- tampon appelée en terminologie anglo-saxonne « frame-buffer » avec les différentes symbologies nécessaires à l'image, ces symbologies étant affectées d'un ordre de priorité ; quand toutes les symbologies ont été créées dans la mémoire-tampon, son contenu est alors envoyé à l'afficheur. Ces images graphiques sont générées en temps réel.
Pour certaines applications, l'écran comprend des zones interdites appelées en terminologie anglo-saxonne « clipbox » à l'intérieur desquelles aucun objet graphique ne doit être tracé. Cette fonction est utile, par exemple, pour afficher une ou plusieurs images vidéo que l'on ne souhaite pas surcharger par de la symbologie.
Pour réaliser cette fonction, la solution couramment adoptée consiste à affecter l'ordre de priorité le plus élevé aux zones interdites de façon que les zones de symbologie de priorité moins élevées se trouvant dans les zones interdites soient effacées du « frame-buffer ». Dans ces conditions, il est possible que l'on crée inutilement de la symbologie dans le « frame-buffer » pour ensuite la remplacer par le contenu souhaité du « clipbox ». On réalise ainsi des calculs inutiles. Or, les images étant générées en temps réel et contenant un très grand nombre de pixels, il est nécessaire d'optimiser les temps de calcul et d'adressage.
L'objet de l'invention est d'éviter de remplir plusieurs fois de suite la mémoire-tampon dans les zones interdites en éliminant par calcul les symbologies se trouvant dans les zones interdites. Toute courbe ou toute ligne complexe peut être décomposée en un certain nombre de lignes droites élémentaires. L'invention s'applique à ces lignes droites élémentaires.
Plus précisément, l'invention a pour objet un procédé de génération graphique d'au moins une ligne droite sur un afficheur matriciel comprenant au moins une zone interdite et une zone autorisée complémentaire de la zone interdite, caractérisé en ce que ledit procédé comporte une première étape de calcul des segments de la ligne situés strictement dans la zone autorisée et une seconde étape de tracé desdits segments dans la zone autorisée. Avantageusement, lorsque l'afficheur comporte deux zones interdites distinctes, le procédé comporte les sous-étapes suivantes : • Calcul des points d'intersection entre la ligne et la première zone interdite ; • Calcul des premiers segments de la ligne situés hors de la première zone interdite ; • Calcul des points d'intersection entre chacun des premiers segments et la seconde zone interdite lorsqu'il existe au moins un premier segment hors de la première zone interdite ; • Calcul des seconds segments de la ligne situés hors de la première zone interdite et hors de la seconde zone interdite ; • Tracé desdits seconds segments dans la zone autorisée, lorsqu'il existe au moins un second segment hors de la première zone interdite et hors de la seconde zone interdite. Avantageusement, les extrémités de chaque segment sont soit une extrémité de la ligne, soit un point d'intersection de la ligne avec une des zones interdites. Avantageusement, les zones interdites ou les zones autorisées sont des surfaces rectangulaires et l'algorithme permettant de calculer les points d'intersection est du type Cohen-Sutherland ou Cyrus-Beck.
L'invention sera mieux comprise et d'autres avantages apparaîtront à la lecture de la description qui va suivre donnée à titre non limitatif et grâce aux figures annexées parmi lesquelles : • la figure 1 représente un afficheur matriciel comportant une zone interdite et une ligne située hors de la zone interdite ; • la figure 2 représente un afficheur matriciel comportant une zone interdite et une ligne située dans la zone interdite ; • la figure 3 représente un afficheur matriciel comportant une zone interdite et une ligne située en partie dans la zone interdite ; • la figure 4 représente un afficheur matriciel comportant une zone interdite et une ligne traversant la zone interdite ; • les figures 5a et 5b représentent un afficheur matriciel comportant deux zones interdites et une ligne traversant les deux zones interdites ; « la figure 6 représente le principe de l'algorithme permettant de calculer les points d'intersection entre une ligne et une zone interdite rectangulaire.
L'invention a pour objet un procédé de génération graphique comportant une première étape de calcul des segments de la ligne situés strictement dans la zone autorisée et une seconde étape de tracé desdits segments dans la zone autorisée.
Les figures 1 , 2, 3 et 4 illustrent ce procédé dans le cas où il existe une seule zone interdite 2 symbolisée par un rectangle sur l'afficheur 1 et dans les différentes configurations de lignes 4 possibles. Sur la figure 1 , la ligne 4 est complètement en dehors de la zone interdite 2. Elle n'a aucun point d'intersection avec la zone interdite 2. Après la première étape de calcul, la ligne est intégralement conservée, symbolisé par un trait plein. Tous les points de la ligne sont tracés. Sur la figure 2, la ligne 4 est intégralement dans la zone interdite 2. Elle n'a aucun point d'intersection avec la zone interdite 2. Après la première étape de calcul, la ligne est intégralement éliminée, symbolisée par un trait en pointillés. Aucun point de la ligne n'est tracé.
Sur la figure 3, une des extrémités 6 de la ligne est dans la zone interdite et l'autre extrémité 5 est dans la zone autorisée 3. Dans ce cas, la ligne a un point d'intersection 51 avec la zone interdite. Le segment 41 qui se trouve dans la zone interdite 2 et dont les extrémités sont les points 6 et 51 est éliminé, symbolisé par un trait en pointillés. Le segment 42 qui se trouve dans la zone autorisée 3 et dont les extrémités sont les points 5 et 51 est conservé, symbolisé par un trait plein. Tous les points de ce segment sont tracés. Sur la figure 4, les deux extrémités de la ligne sont dans la zone autorisée mais la ligne coupe la zone interdite aux points 51 et 52. Le segment 42 qui se trouve dans la zone interdite 2 et dont les extrémités sont les points 51 et 52 est éliminé, symbolisé par un trait en pointillés. Les segments 41 et 43 qui se trouvent dans la zone autorisée 3 et dont les extrémités sont respectivement les points 5 et 51 et 52 et 6 sont conservés, symbolisés par des trait pleins. Tous les points de ces segments sont tracés.
Lorsque l'afficheur comporte deux zones interdites distinctes, le procédé comporte les sous-étapes suivantes : • Calcul des points d'intersection entre la ligne et la première zone interdite ; • Calcul des premiers segments de la ligne situés hors de la première zone interdite ; • Calcul des points d'intersection entre chacun des premiers segments et la seconde zone interdite lorsqu'il existe au moins un premier segment hors de la première zone interdite ; • Calcul des seconds segments de la ligne situés hors de la première zone interdite et hors de la seconde zone interdite ; • Tracé desdits seconds segments dans la zone autorisée, lorsqu'il existe au moins un second segment hors de la première zone interdite et hors de la seconde zone interdite.
Les figures 5a et 5b illustrent les étapes principales du procédé dans le cas de deux zones interdites distinctes 21 et 22 disposées sur un afficheur 1. Une ligne 4 traverse les deux zones interdites 21 et 22.
La figure 5a représente les deux premières sous-étapes du procédé. Sur cette figure, la seconde zone 22 figure en pointillés pour mémoire. Sur la figure 5a, les deux extrémités 5 et 6 de la ligne sont dans la zone autorisée mais la ligne coupe la zone interdite aux points 51 et 52. Le
5 segment 42 qui se trouve dans la zone interdite 21 et dont les extrémités sont les points 51 et 52 est éliminé, symbolisé par un trait en pointillés. Les segments 41 et 43 qui se trouvent dans la zone autorisée 3 et dont les extrémités sont respectivement les points 5 et 51 et 52 et 6 sont conservés, symbolisés par des trait pleins.0 La figure 5b représente les deux dernières sous-étapes du procédé. Le premier segment 41 qui se trouve hors de la zone interdite 22 est intégralement conservé. Les deux extrémités 52 et 6 du segment 43 sont dans la zone autorisée mais ce segment coupe la zone interdite 22 aux points 53 et 54. Le segment 45 qui se trouve dans la zone interdite 22 et dont5 les extrémités sont les points 53 et 54 est éliminé, symbolisé par un trait en pointillés. Les segments 44 et 46 qui se trouvent dans la zone autorisée 3 et dont les extrémités sont respectivement les points 52 et 53 et 54 et 6 sont conservés, symbolisés par des trait pleins. En finale, les segments 41 , 44 et 46 sont tracés comme indiqué sur la figure 5b.0 On peut, bien entendu, généraliser le procédé à une pluralité de zones interdites. On examine alors, zone après zone les segments de la
_ —ligne, situés hors des zones déjà examinées. . - - Dans la grande majorité des cas, les zones autorisées ou les zones interdites sont des fenêtres rectangulaires dans lesquelles on incruste5 des images vidéo. Pour calculer les points d'intersection, il existe différents types d'algorithmes. A titre d'exemple, il est possible d'utiliser l'algorithme de Cohen-Sutherland (Computer Graphics : Principles and Practice - Second Edition - Foley, vanDam, Feiner et Hugues - § 3.1.2.). Les principales étapes de cet algorithme sont les suivantes :0 • Etape 1 : Quadrillage de la surface de l'afficheur en 8 zones autorisées entourant la zone interdite 2 rectangulaire comme indiqué sur la figure 6. Ces zones sont délimitées par 4 lignes situées dans le prolongement des cotés du rectangle délimitant la zone interdite 2. On obtient ainsi 8 zones numérotées de 315 à 38 sur la figure 6 ;
• Etape 2 : Détermination de l'appartenance des extrémités 5 et 6 d'une ligne à une zone donnée en comparant les coordonnées des extrémités de la lignes à celles des zones ;
• Etape 3 : En fonction de cette appartenance, 3 cas se présentent : o La ligne appartient à la zone interdite, elle est éliminée ; o La ligne est intégralement en dehors de la ligne, elle est intégralement conservée ; o La ligne traverse en partie la zone interdite, on passe à l'étape suivante ;
• Etape 4 : Calcul d'un premier point d'intersection entre la ligne et un coté du rectangle traversé par la ligne ;
• Etape 5 : Pour chaque segment délimité par une extrémité de la ligne et le point d'intersection, retour à l'étape 3 en assimilant ledit segment à une ligne jusqu'à ce que tous les segments obtenus appartiennent soit à la zone interdite, soit à la zone autorisée.