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