Crear figuras a partir de líneas, curvas y formas
Para crear un trazado, construya un objeto GraphicsPath y, a continuación, llame a métodos, como AddLine y AddCurve, para agregar tipos primitivos al trazado.
En el siguiente ejemplo se crea un trazado que tiene una sola figura. La figura está formada por un único arco. El arco tiene un ángulo de barrido de –180 grados, que va en sentido contrario a las agujas del reloj en el sistema de coordenadas predeterminado.
Dim path As New GraphicsPath()
path.AddArc(175, 50, 50, 50, 0, - 180)
e.Graphics.DrawPath(New Pen(Color.FromArgb(128, 255, 0, 0), 4), path)
[C#]
GraphicsPath path = new GraphicsPath();
path.AddArc(175, 50, 50, 50, 0, -180);
e.Graphics.DrawPath(new Pen(Color.FromArgb(128, 255, 0, 0), 4), path);
En el siguiente ejemplo se crea un trazado que tiene dos figuras. La primera figura es un arco seguido de una línea. La segunda figura es una línea seguida de una curva seguida de una línea. La primera figura se deja abierta, la segunda está cerrada.
' Create an array of points for the curve in the second figure.
Dim points As Point() = { _
New Point(40, 60), _
New Point(50, 70), _
New Point(30, 90)}
Dim path As New GraphicsPath()
path.StartFigure() ' Start the first figure.
path.AddArc(175, 50, 50, 50, 0, - 180)
path.AddLine(100, 0, 250, 20)
' First figure is not closed.
path.StartFigure() ' Start the second figure.
path.AddLine(50, 20, 5, 90)
path.AddCurve(points, 3)
path.AddLine(50, 150, 150, 180)
path.CloseFigure() ' Second figure is closed.
e.Graphics.DrawPath(New Pen(Color.FromArgb(255, 255, 0, 0), 2), path)
[C#]
// Create an array of points for the curve in the second figure.
Point[] points = {
new Point(40, 60),
new Point(50, 70),
new Point(30, 90)};
GraphicsPath path = new GraphicsPath();
path.StartFigure(); // Start the first figure.
path.AddArc(175, 50, 50, 50, 0, -180);
path.AddLine(100, 0, 250, 20);
// First figure is not closed.
path.StartFigure(); // Start the second figure.
path.AddLine(50, 20, 5, 90);
path.AddCurve(points, 3);
path.AddLine(50, 150, 150, 180);
path.CloseFigure(); // Second figure is closed.
e.Graphics.DrawPath(new Pen(Color.FromArgb(255, 255, 0, 0), 2), path);