Partager via


Anticrénelage avec des lignes et des courbes

Lorsque vous utilisez GDI+ pour dessiner une ligne, vous fournissez le point de départ et le point de fin de la ligne, mais vous n’avez pas besoin de fournir d’informations sur les pixels individuels sur la ligne. GDI+ fonctionne conjointement avec le logiciel du pilote d’affichage pour déterminer quels pixels seront activés pour afficher la ligne sur un appareil d’affichage particulier.

Alias

Considérez la ligne rouge droite qui passe du point (4, 2) au point (16, 10). Supposons que le système de coordonnées a son origine dans le coin supérieur gauche et que l’unité de mesure est le pixel. Supposons également que l’axe x pointe vers la droite et que l’axe y pointe vers le bas. L’illustration suivante montre une vue agrandie de la ligne rouge dessinée sur un arrière-plan coloré.

Line, no antialiasing

Les pixels rouges utilisés pour restituer la ligne sont opaques. Il n’y a pas de pixels partiellement transparents dans la ligne. Ce type de rendu de ligne donne à la ligne une apparence en jaquet, et la ligne ressemble quelque peu à un escalier. Cette technique de représentation d’une ligne avec un escalier est appelée alias ; l’escalier est un alias pour la ligne théorique.

Anticrénelage

Une technique plus sophistiquée pour le rendu d’une ligne implique l’utilisation de pixels partiellement transparents, ainsi que de pixels opaques. Les pixels sont définis sur rouge pur, ou sur un mélange de rouge et de couleur d’arrière-plan, selon la proximité qu’ils sont à la ligne. Ce type de rendu est appelé antialiasing et entraîne une ligne que l’œil humain perçoit comme plus lisse. L’illustration suivante montre comment certains pixels sont mélangés avec l’arrière-plan pour produire une ligne antialiased.

Antialiasing a Line

L’anticrénelage, également appelé lissage, peut également être appliqué aux courbes. L’illustration suivante montre une vue agrandie d’un ellipse lisse.

Antialiasing Curves

L’illustration suivante montre la même ellipse dans sa taille réelle, une fois sans antialiasing et une fois avec antialiasing.

Antialiasing example

Pour dessiner des lignes et des courbes qui utilisent l’anticrénelage, créez une instance de la Graphics classe et définissez sa SmoothingMode propriété sur AntiAlias ou HighQuality. Appelez ensuite l’une des méthodes de dessin de cette même Graphics classe.

myGraphics.SmoothingMode = SmoothingMode.AntiAlias;
myGraphics.DrawLine(myPen, 0, 0, 12, 8);
myGraphics.SmoothingMode = SmoothingMode.AntiAlias
myGraphics.DrawLine(myPen, 0, 0, 12, 8)

Voir aussi