Panoramica della grafica vettoriale
Windows GDI+ disegna linee, rettangoli e altre figure in un sistema di coordinate. È possibile scegliere tra diversi sistemi di coordinate, ma il sistema di coordinate predefinito ha l'origine nell'angolo superiore sinistro con l'asse x che punta a destra e l'asse y che punta verso il basso. L'unità di misura nel sistema di coordinate predefinito è il pixel.
Un monitor computer crea la visualizzazione su una matrice rettangolare di punti denominati elementi immagine o pixel. Il numero di pixel visualizzati sullo schermo varia da un monitor all'altro e il numero di pixel visualizzati in un singolo monitor può essere in genere configurato in qualche misura dall'utente.
Quando si usa GDI+ per disegnare una linea, un rettangolo o una curva, si forniscono alcune informazioni chiave sull'elemento da disegnare. È ad esempio possibile specificare una linea specificando due punti ed è possibile specificare un rettangolo specificando un punto, un'altezza e una larghezza. GDI+ funziona insieme al software del driver di visualizzazione per determinare quali pixel devono essere attivati per visualizzare la linea, il rettangolo o la curva. La figura seguente mostra i pixel attivati per visualizzare una linea dal punto (4, 2) al punto (12, 8).
Nel corso del tempo, alcuni blocchi predefiniti di base hanno dimostrato di essere il più utile per la creazione di immagini bidimensionali. Questi blocchi predefiniti, che sono tutti supportati da GDI+, sono indicati nell'elenco seguente:
- Linee
- Rettangoli
- Ellissi
- Archi
- Poligoni
- Spline cardinali
- Spline di Bézier
La classe Graphics in GDI+ fornisce i metodi seguenti per disegnare gli elementi nell'elenco precedente: DrawLine, DrawRectangle, DrawEllipse, DrawPolygon, DrawArc, DrawCurve (per le spline cardinali) e DrawBezier. Ognuno di questi metodi è sottoposto a overload; ovvero, ogni metodo viene fornito in diverse varianti con elenchi di parametri diversi. Ad esempio, una variante del metodo DrawLine riceve l'indirizzo di un oggetto Pen e quattro interi, mentre un'altra variante del metodo DrawLine riceve l'indirizzo di un oggetto Pen e due riferimenti all'oggetto Point .
I metodi per disegnare linee, rettangoli e spline bézier hanno metodi complementari plurali che disegnano diversi elementi in una singola chiamata: DrawLines, DrawRectangles e DrawBeziers. Inoltre, il metodo DrawCurve ha un metodo complementare DrawClosedCurve, che chiude una curva collegando il punto finale della curva al punto iniziale.
Tutti i metodi di disegno della classe Graphics funzionano insieme a un oggetto Pen . Pertanto, per disegnare qualsiasi elemento, è necessario creare almeno due oggetti: un oggetto Graphics e un oggetto Pen . L'oggetto Pen archivia gli attributi dell'elemento da disegnare, ad esempio la larghezza e il colore della linea. L'indirizzo dell'oggetto Pen viene passato come uno degli argomenti al metodo di disegno. Ad esempio, una variante del metodo DrawRectangle riceve l'indirizzo di un oggetto Pen e quattro interi, come illustrato nel codice seguente, che disegna un rettangolo con una larghezza pari a 100, un'altezza pari a 50 e un angolo superiore sinistro di (20, 10).
myGraphics.DrawRectangle(&myPen, 20, 10, 100, 50);