Condividi tramite


Impostazione della larghezza e dell'allineamento della penna

Quando si crea un oggetto Pen , è possibile specificare la larghezza della penna come uno degli argomenti del costruttore. È anche possibile modificare la larghezza della penna usando il metodo Pen::SetWidth .

Una linea teorica ha una larghezza pari a zero. Quando si disegna una linea, i pixel vengono centrati sulla linea teorica. L'esempio seguente disegna una riga specificata due volte: una volta con una penna nera di larghezza 1 e una volta con una penna verde di larghezza 10.

Pen blackPen(Color(255, 0, 0, 0), 1);
Pen greenPen(Color(255, 0, 255, 0), 10);
stat = greenPen.SetAlignment(PenAlignmentCenter);

// Draw the line with the wide green pen.
stat = graphics.DrawLine(&greenPen, 10, 100, 100, 50);

// Draw the same line with the thin black pen.
stat = graphics.DrawLine(&blackPen, 10, 100, 100, 50);

La figura seguente mostra l'output del codice precedente. I pixel verdi e i pixel neri sono centrati sulla linea teorica.

illustrazione che mostra una linea sottile, diagonale, nera circondata da una linea larga, verde

Nell'esempio seguente viene disegnato un rettangolo specificato due volte: una volta con una penna nera di larghezza 1 e una volta con una penna verde di larghezza 10. Il codice passa il valore PenAlignmentCenter (un elemento dell'enumerazione PenAlignment ) al metodo Pen::SetAlignment per specificare che i pixel disegnati con la penna verde sono centrati sul limite del rettangolo.

Pen blackPen(Color(255, 0, 0, 0), 1);
Pen greenPen(Color(255, 0, 255, 0), 10);
stat = greenPen.SetAlignment(PenAlignmentCenter);

// Draw the rectangle with the wide green pen.
stat = graphics.DrawRectangle(&greenPen, 10, 100, 50, 50);

// Draw the same rectangle with the thin black pen.
stat = graphics.DrawRectangle(&blackPen, 10, 100, 50, 50);

La figura seguente mostra l'output del codice precedente. I pixel verdi sono centrati sul rettangolo teorico, rappresentato dai pixel neri.

illustrazione che mostra una linea nera sottile nella forma di un rettangolo, circondata da una linea verde più ampia

È possibile modificare l'allineamento della penna verde modificando la terza istruzione nell'esempio precedente come indicato di seguito:

stat = greenPen.SetAlignment(PenAlignmentInset);

Ora i pixel nella linea verde larga vengono visualizzati all'interno del rettangolo, come illustrato nella figura seguente.

illustrazione che mostra una linea nera sottile nella forma di un rectange, racchiudendo una linea verde larga della stessa forma