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