Graphics.DrawBeziers 方法
Graphics.DrawBeziers 方法 (Pen, Point[])
用 Point 结构数组绘制一系列贝塞尔样条。
命名空间:System.Drawing
程序集:System.Drawing(在 system.drawing.dll 中)
语法
C#
public void DrawBeziers (
Pen pen,
Point[] points
)
C++
public:
void DrawBeziers (
Pen^ pen,
array<Point>^ points
)
参数
pen
Pen,它确定曲线的颜色、宽度和样式。
points
Point 结构的数组,这些结构表示确定曲线的点。
异常
异常类型 条件
ArgumentNullException
pen 为 空引用(在 Visual Basic 中为 Nothing)。
- 或 -
points 为 空引用(在 Visual Basic 中为 Nothing)。
备注
第一个贝塞尔样条是从点数组中的第一个点到第四个点绘制成的。第二个点和第三个点是确定曲线形状的控制点。每条后续曲线只需要三个点:两个控制点和一个结束点。前一条曲线的结束点用作后一条曲线的起始点。
示例
下面的代码示例设计为与 Windows 窗体一起使用,它需要 PaintEventArgse,即 Paint 事件处理程序的一个参数。代码执行下列操作:
创建黑色钢笔。
为第一条曲线创建起始点、结束点和两个控制点;为第二条曲线创建结束点和两个控制点。
将连续的贝塞尔曲线绘制到屏幕。
C#
public void DrawBeziersPoint(PaintEventArgs e)
{
// Create pen.
Pen blackPen = new Pen(Color.Black, 3);
// Create points for curve.
Point start = new Point(100, 100);
Point control1 = new Point(200, 10);
Point control2 = new Point(350, 50);
Point end1 = new Point(500, 100);
Point control3 = new Point(600, 150);
Point control4 = new Point(650, 250);
Point end2 = new Point(500, 300);
Point[] bezierPoints =
{
start, control1, control2, end1,
control3, control4, end2
};
// Draw arc to screen.
e.Graphics.DrawBeziers(blackPen, bezierPoints);
}
C++
public:
void DrawBeziersPoint( PaintEventArgs^ e )
{
// Create pen.
Pen^ blackPen = gcnew Pen( Color::Black,3.0f );
// Create points for curve.
Point start = Point(100,100);
Point control1 = Point(200,10);
Point control2 = Point(350,50);
Point end1 = Point(500,100);
Point control3 = Point(600,150);
Point control4 = Point(650,250);
Point end2 = Point(500,300);
array<Point>^ bezierPoints = {start,control1,control2,end1,control3,control4,end2};
// Draw arc to screen.
e->Graphics->DrawBeziers( blackPen, bezierPoints );
}
Graphics.DrawBeziers 方法 (Pen, PointF[])
用 PointF 结构数组绘制一系列贝塞尔样条。
命名空间:System.Drawing
程序集:System.Drawing(在 system.drawing.dll 中)
语法
C#
public void DrawBeziers (
Pen pen,
PointF[] points
)
C++
public:
void DrawBeziers (
Pen^ pen,
array<PointF>^ points
)
参数
pen
Pen,它确定曲线的颜色、宽度和样式。
points
PointF 结构的数组,这些结构表示确定曲线的点。
异常
异常类型 条件
ArgumentNullException
pen 为 空引用(在 Visual Basic 中为 Nothing)。
- 或 -
points 为 空引用(在 Visual Basic 中为 Nothing)。
备注
第一个贝塞尔曲线是从点数组中的第一个点到第四个点绘制成的。第二个点和第三个点是确定曲线形状的控制点。每条后续曲线只需要三个点:两个控制点和一个结束点。前一条曲线的结束点用作后一条曲线的起始点。
示例
下面的代码示例设计为与 Windows 窗体一起使用,它需要 PaintEventArgse,即 Paint 事件处理程序的一个参数。代码执行下列操作:
创建黑色钢笔。
为第一条曲线创建起始点、结束点和两个控制点;为第二条曲线创建结束点和两个控制点。
将连续的贝塞尔曲线绘制到屏幕。
C# 复制代码
public void DrawBeziersPointF(PaintEventArgs e)
{
// Create pen.
Pen blackPen = new Pen(Color.Black, 3);
// Create points for curve.
PointF start = new PointF(100.0F, 100.0F);
PointF control1 = new PointF(200.0F, 10.0F);
PointF control2 = new PointF(350.0F, 50.0F);
PointF end1 = new PointF(500.0F, 100.0F);
PointF control3 = new PointF(600.0F, 150.0F);
PointF control4 = new PointF(650.0F, 250.0F);
PointF end2 = new PointF(500.0F, 300.0F);
PointF[] bezierPoints = { start, control1, control2, end1,
control3, control4, end2 };
// Draw arc to screen.
e.Graphics.DrawBeziers(blackPen, bezierPoints);
}
C++ 复制代码
public:
void DrawBeziersPointF( PaintEventArgs^ e )
{
// Create pen.
Pen^ blackPen = gcnew Pen( Color::Black,3.0f );
// Create points for curve.
PointF start = PointF(100.0F,100.0F);
PointF control1 = PointF(200.0F,10.0F);
PointF control2 = PointF(350.0F,50.0F);
PointF end1 = PointF(500.0F,100.0F);
PointF control3 = PointF(600.0F,150.0F);
PointF control4 = PointF(650.0F,250.0F);
PointF end2 = PointF(500.0F,300.0F);
array<PointF>^ bezierPoints = {start,control1,control2,end1,control3,control4,end2};
// Draw arc to screen.
e->Graphics->DrawBeziers( blackPen, bezierPoints );
}
第一个贝塞尔样条是从点数组中的第一个点到第四个点绘制成的。第二个点和第三个点是确定曲线形状的控制点。每条后续曲线只需要三个点:两个控制点和一个结束点。前一条曲线的结束点用作后一条曲线的起始点。
也就是说,可以画4 、7、10、13、...... 1 + n*3,个点,每格三个点可以画一次,如果选取8个点或9个点就不符合规则,不会形成贝塞尔曲线,而且贝塞尔曲线会根据首个控制点的改变而发生整体改变的效果。