您的位置: 旅游网 > 明星 >> 张杰

的编程入门教程之图形物业

发布时间:2021-10-28 05:25:47

二、贝赛尔曲线

贝赛尔曲线是用四个点(不必在一条直线上)绘制的连续曲线,它可以用下图来说明:

图二十四、贝赛尔曲线

为了绘制这个线条(使用四个点),编译器将从第一点到第四个点画一条曲线,但是它并不经过第二、第三个点,而只是通过弯曲曲线来使中间的侧边各自接近于第二、第三个点。例如,上述的贝赛尔曲线使用了如下的四个点进行绘制:

图二十五、贝赛尔曲线绘制说明图

为了绘制贝赛尔曲线,Graphics类提供了DrawBezier()方法,它重载了以下版本:

public: void DrawBezier(Pen *pen, Point pt1, Point pt2, Point pt3, Point pt4);

public: void DrawBezier(Pen *pen, PointF pt1, PointF pt2, PointF pt3, PointF pt4);

public: void DrawBezier(Pen *pen, float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4);

在此基础上,绘制贝赛尔曲线时可以使用四个Point 或PointF值,也可以使用四个点的坐标值。下面有一个例子:

private: System::Void Form1_Paint(System::Object * sender,

System::Windows::Forms::PaintEventArgs * e)

{

Pen *penCurrent = new Pen(Color::Blue);

Point pt1 = Point(20, 12), pt2 = Point(88, 246), pt3 = Point(364, 192), pt4 = Point(250, 48);

e-Graphics-DrawBezier(penCurrent, pt1, pt2, pt3, pt4);

}

效果图如下:

图二十六、贝赛尔曲线效果图

三、一系列贝赛尔曲线

Graphics::DrawBezier()方法用来绘制一条贝赛尔曲线,如果想绘制一系列贝赛尔曲线,可以用Graphics::DrawBeziers()方法,它重载了两个版本:

public: void DrawBeziers(Pen *pen, Point points[]);

public: void DrawBeziers(Pen *pen, PointF points[]);

DrawBeziers()方法需要一个Point 或 PointF数组值。当仅仅处理四个点时,DrawBeziers() 方法与 DrawBezier()很相似。区别是DrawBezier()处理的是四个Point 或 PointF的值,DrawBeziers()处理的是Point 或 PointF数组值。使用DrawBeziers()方法可以绘制出与上面曲线一样的效果,代码如下:

private: System::Void Form1_Paint(System::Object * sender,

System::Windows::Forms::PaintEventArgs * e)

{

Pen *penCurrent = new Pen(Color::Blue);

Point pt[] = { Point(20, 12), Point(88, 246), Point(364, 192), Point(250, 48) };

恶人谷 e-Graphics-DrawBeziers(penCurrent, pt);

}

使用DrawBeziers()方法的一个典型特点是它允许使用7个Point或PointF值,这里有一个例子:

private: System::Void Form1_Paint(System::Object * sender,

System::Windows::Forms::PaintEventArgs * e)

{

Pen *penCurrent = new Pen(Color::Blue);

Point pt[] = { Point( 10, 5), Point(340, 60), Point(320, 148), Point(150, 120), Point(24, 220), Point(250, 150), Point(304, 240) };

e-Graphics-DrawBeziers(penCurrent, pt);

}

效果图如下:

图二十七、代码运行效果图

兰州阴道炎
米诺地尔酊治疗哪些人群的脱发
南通妇科哪家好
猜你会喜欢的
猜你会喜欢的