如何:使用线条、曲线和形状创建图形

更新:2007 年 11 月

若要创建图形,请构造 GraphicsPath,然后调用诸如 AddLineAddCurve 的方法,向路径中添加基元。

示例

下面的代码示例创建具有图形的路径:

  • 第一个示例创建具有单一图形的路径。该图形由一段弧组成。该弧的扫描角为 -180 度,此角度在默认的坐标系中是按逆时针方向旋转的。

  • 第二个示例创建具有两个图形的路径。第一个图形是一段弧,后跟一条直线。第二个图形是一条直线,后跟一条曲线,再后面又是一条直线。第一个图形的左边是敞开的;第二个图形是闭合的。

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)

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

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

编译代码

前面的示例是为使用 Windows 窗体而设计的,它们需要 Paint 事件处理程序的参数 PaintEventArgs e。

请参见

参考

GraphicsPath

其他资源

构造并绘制轨迹

使用钢笔绘制线条和形状