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 | pen 为 null。
 - 或 - points 为null。  | 
备注
此方法绘制经过数组中每个点的基数样条。
若要绘制曲线,指针数组至少必须包含三个 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);
}