Lignes
Une ligne est un ensemble de pixels mis en surbrillance sur un affichage raster (ou un ensemble de points sur une page imprimée) identifié par deux points : un point de départ et un point de fin. Le pixel situé au point de départ est toujours inclus dans la ligne, et le pixel situé au point de terminaison est toujours exclu. (Ce type de ligne est parfois appelé inclusif exclusif.)
Lorsqu’une application appelle l’une des fonctions de dessin de trait, l’interface de périphérique graphique (GDI) ou, dans certains cas, un pilote de périphérique détermine les pixels à mettre en surbrillance. GDI est une bibliothèque de liens dynamiques (DLL) qui traite les appels de fonction graphique à partir d’une application et transmet ces appels à un pilote de périphérique. Un pilote de périphérique est une DLL qui reçoit l’entrée de GDI, convertit l’entrée en commandes d’appareil et transmet ces commandes à l’appareil approprié. GDI utilise un analyseur différentiel numérique (DDA) pour déterminer l’ensemble de pixels qui définissent une ligne. Un DDA détermine l’ensemble des pixels en examinant chaque point sur la ligne et en identifiant ces pixels sur la surface d’affichage (ou points sur une page imprimée) qui correspondent aux points. L’illustration suivante montre une ligne, son point de départ, son point de terminaison et les pixels mis en surbrillance à l’aide d’un DDA simple.
La DDA la plus simple et la plus courante est la DDA Bresenham, ou incrémentielle, DDA. Une version modifiée de cet algorithme dessine des lignes dans Windows. Le DDA incrémentiel est noté pour sa simplicité, mais il est également noté pour son inexactitude. Étant donné qu’il arrondit à la valeur entière la plus proche, il ne parvient parfois pas à représenter la ligne d’origine demandée par l’application. Le DDA utilisé par GDI n’arrondit pas à l’entier le plus proche. Par conséquent, cette nouvelle DDA produit une sortie parfois beaucoup plus proche de la ligne d’origine demandée par l’application.
Note
Si une application nécessite une sortie de ligne qui ne peut pas être obtenue avec la nouvelle DDA, elle peut dessiner ses propres lignes en appelant la fonctionLineDDAet en fournissant un DDA privé (LineDDAProc). Toutefois, la fonction LineDDA dessine des lignes beaucoup plus lentes que les fonctions de dessin de trait. N’utilisez pas cette fonction dans une application si la vitesse est une préoccupation principale.
Une application peut utiliser le nouveau DDA pour dessiner des lignes uniques et plusieurs segments de ligne connectés. Une application peut dessiner une seule ligne en appelant la fonction LineTo. Cette fonction dessine une ligne de la position actuelle jusqu’à un point de fin spécifié, mais pas inclus. Une application peut dessiner une série de segments de ligne connectés en appelant la fonction Polyline, en fournissant un tableau de points qui spécifient le point de terminaison de chaque segment de ligne. Une application peut dessiner plusieurs séries disjointes de segments de ligne connectés en appelant la fonction PolyPolyline, en fournissant les points de terminaison requis.
L’illustration suivante montre la sortie de ligne créée en appelant les fonctions LineTo, Polylineet fonctions de PolyPolyline.
trois dimensions