Condividi tramite


Anti-aliasing con linee e curve

Aggiornamento: novembre 2007

Per tracciare una linea tramite GDI+, è necessario specificare i punti iniziale e finale della linea ma non le informazioni sui singoli pixel. GDI+ opera congiuntamente al software del driver video per determinare i pixel da attivare per mostrare la linea in una particolare periferica di visualizzazione.

Aliasing

Si prenda in considerazione la linea retta rossa che unisce il punto (4, 2) al punto (16, 10). Si supponga che l'origine del sistema di coordinate si trovi nell'angolo superiore sinistro e che l'unità di misura sia il pixel. Si supponga inoltre che l'asse x sia rivolto verso destra e l'asse y verso il basso. Nell'immagine seguente viene mostrato un ingrandimento della linea rossa tracciata su uno sfondo multicolore.

Linea, senza antialiasing

Si noti che i pixel rossi utilizzati per il rendering della linea sono opachi. Lungo la linea non sono presenti pixel parzialmente trasparenti. Questo tipo di rendering attribuisce alla linea un aspetto irregolare: la linea assomiglia infatti quasi a una scala. La tecnica di rappresentazione di una linea come una scala è definita aliasing: la scala è un alias della linea teorica.

Anti-aliasing

Una tecnica più avanzata per il rendering di una linea implica l'utilizzo di pixel parzialmente trasparenti insieme ai pixel opachi. Il colore dei pixel è impostato su rosso puro o su una fusione di rosso e del colore dello sfondo in base alla vicinanza dei pixel alla linea. Questo tipo di rendering è definito antialias e consente di ottenere una linea che viene percepita come maggiormente uniforme. Nell'immagine seguente viene mostrata la fusione di alcuni pixel con il colore dello sfondo per creare una linea di tipo antialias.

Antialiasing di una linea

È possibile applicare l'anti-aliasing (smussamento) anche alle curve. Nell'immagine seguente viene mostrato un ingrandimento di un'ellisse smussata.

Antialiasing di curve

Nell'immagine seguente viene mostrata la stessa ellisse a dimensioni effettive, senza e con anti-aliasing.

Esempio di antialiasing

Per tracciare linee e curve che utilizzano l'anti-aliasing, creare un'istanza della classe Graphics e impostarne la proprietà SmoothingMode su AntiAlias o su HighQuality. Chiamare quindi uno dei metodi di disegno della stessa classe Graphics.

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

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

Vedere anche

Attività

Procedura: utilizzare l'antialiasing nel testo

Riferimenti

System.Drawing.Drawing2D.SmoothingMode

Altre risorse

Linee, curve e forme