Condividi tramite


Penne, linee e rettangoli

Per disegnare linee con Windows GDI+ è necessario creare un oggetto Graphics e un oggetto Pen . L'oggetto Graphics fornisce i metodi che eseguono effettivamente il disegno e l'oggetto Pen archivia gli attributi della linea, ad esempio colore, larghezza e stile. Il disegno di una linea è semplicemente una questione di chiamata al metodo DrawLine dell'oggetto Graphics . L'indirizzo dell'oggetto Pen viene passato come uno degli argomenti al metodo DrawLine. Nell'esempio seguente viene tracciata una linea dal punto (4, 2) al punto (12, 6).

myGraphics.DrawLine(&myPen, 4, 2, 12, 6);

DrawLine è un metodo di overload della classe Graphics , quindi è possibile specificarlo con argomenti in diversi modi. Ad esempio, è possibile costruire due oggetti Point e passare riferimenti agli oggetti Point come argomenti al metodo DrawLine.

Point myStartPoint(4, 2);
Point myEndPoint(12, 6);
myGraphics.DrawLine(&myPen, myStartPoint, myEndPoint);

È possibile specificare determinati attributi quando si costruisce un oggetto Pen . Ad esempio, un costruttore Pen consente di specificare colore e larghezza. Nell'esempio seguente viene tracciata una linea blu di larghezza 2 da (0, 0) a (60, 30).

Pen myPen(Color(255, 0, 0, 255), 2);
myGraphics.DrawLine(&myPen, 0, 0, 60, 30);

L'oggetto Pen include anche attributi, ad esempio lo stile trattino, che è possibile utilizzare per specificare le caratteristiche della linea. L'esempio seguente, ad esempio, disegna una linea tratteggiata da (100, 50) a (300, 80).

myPen.SetDashStyle(DashStyleDash);
myGraphics.DrawLine(&myPen, 100, 50, 300, 80);

È possibile utilizzare vari metodi dell'oggetto Pen per impostare molti altri attributi della linea. I metodi Pen::SetStartCap e Pen::SetEndCap specificano l'aspetto delle estremità della riga; le estremità possono essere piatta, quadrata, arrotondata, triangolare o una forma personalizzata. Il metodo Pen::SetLineJoin consente di specificare se le linee connesse vengono ritagliate (unite con angoli taglienti), smussate, arrotondate o ritagliate. La figura seguente mostra le linee con vari stili di estremità e join.

illustrazione di due linee che illustrano estremità arrotondate e circolari, angoli arrotondati e arrotondati e due stili di freccia

I rettangoli di disegno con GDI+ sono simili alle linee di disegno. Per disegnare un rettangolo, sono necessari un oggetto Graphics e un oggetto Pen . L'oggetto Graphics fornisce un metodo DrawRectangle e l'oggetto Pen archivia gli attributi, ad esempio larghezza e colore della linea. L'indirizzo dell'oggetto Pen viene passato come uno degli argomenti al metodo DrawRectangle. Nell'esempio seguente viene disegnato un rettangolo con l'angolo superiore sinistro in corrispondenza di (100, 50), una larghezza di 80 e un'altezza pari a 40.

myGraphics.DrawRectangle(&myPen, 100, 50, 80, 40);

DrawRectangle è un metodo di overload della classe Graphics , quindi è possibile fornirlo con argomenti in diversi modi. Ad esempio, è possibile costruire un oggetto Rect e passare un riferimento all'oggetto Rect come argomento al metodo DrawRectangle.

Rect myRect(100, 50, 80, 40);
myGraphics.DrawRectangle(&myPen, myRect);

Un oggetto Rect include metodi per la modifica e la raccolta di informazioni sul rettangolo. Ad esempio, i metodi Inflate e Offset modificano le dimensioni e la posizione del rettangolo. Il metodo Rect::IntersectsWith indica se il rettangolo interseca un altro rettangolo specificato e il metodo Contains indica se un determinato punto si trova all'interno del rettangolo.