c#绘图技术



c#绘图技术

Graphics.DrawCurve 方法 (Pen, Point[], Single)

使用指定的张力绘制经过一组指定的 Point 结构的基数样条。

 

命名空间:  System.Drawing 程序集:  System.Drawing(在 System.Drawing.dll 中)

语法


C#

public void DrawCurve(
	Pen pen,
	Point[] points,
	float tension
)

参数

pen
类型:System.Drawing.Pen Pen,它确定曲线的颜色、宽度和样式。
points
类型:System.Drawing.Point[] Point结构数组,这些结构定义样条。
tension
类型:System.Single 大于或等于 0.0F 的值,该值指定曲线的张力。

异常


异常 条件
ArgumentNullException pennull

- 或 -


pointsnull

备注


此方法绘制经过数组中每个点的基数样条。

若要绘制曲线,指针数组至少必须包含三个 Point 结构。

tension 参数确定样条的形状。如果 tension 参数的值为 0.0F,则此方法绘制直线段以连接这些点。通常,tension 参数小于或等于 1.0F。超过 1.0F 的值会产生异常结果。

示例


下面的代码示例设计用于 Windows 窗体,它需要 PaintEventArgse(这是Paint 事件处理程序的参数)。代码执行下列操作:

  • 创建红色钢笔和绿色钢笔。
  • 创建定义曲线的七个点。
  • 在七个点之间绘制六条红色直线以形成一个不完整的多边形。
  • 创建张力设置。
  • 绘制一条经过七个点的非闭合绿色曲线。

该方法使用张力 1.0。

C#
private void DrawCurvePointTension(PaintEventArgs e)
{

    // Create pens.
    Pen redPen = new Pen(Color.Red, 3);
    Pen greenPen = new Pen(Color.Green, 3);

    // Create points that define curve.
    Point point1 = new Point(50, 50);
    Point point2 = new Point(100, 25);
    Point point3 = new Point(200, 5);
    Point point4 = new Point(250, 50);
    Point point5 = new Point(300, 100);
    Point point6 = new Point(350, 200);
    Point point7 = new Point(250, 250);
    Point[] curvePoints = {point1, point2, point3, point4, point5, point6, point7};

    // Draw lines between original points to screen.
    e.Graphics.DrawLines(redPen, curvePoints);

    // Create tension.
    float tension = 1.0F;

    // Draw curve to screen.
    e.Graphics.DrawCurve(greenPen, curvePoints, tension);
}