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.

illustrazione di un sistema di coordinate con l'asse x che si estende a destra e l'asse y che si estende verso il basso

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.

illustrazione di una griglia rettangolare, con tre celle nella griglia etichettata dalle coordinate

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).

illustrazione che mostra una griglia rettangolare con celle riempite per indicare una linea tra due endpoint

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);