的编程入门教程之图形物业
二、贝赛尔曲线
贝赛尔曲线是用四个点(不必在一条直线上)绘制的连续曲线,它可以用下图来说明:
图二十四、贝赛尔曲线
为了绘制这个线条(使用四个点),编译器将从第一点到第四个点画一条曲线,但是它并不经过第二、第三个点,而只是通过弯曲曲线来使中间的侧边各自接近于第二、第三个点。例如,上述的贝赛尔曲线使用了如下的四个点进行绘制:
图二十五、贝赛尔曲线绘制说明图
为了绘制贝赛尔曲线,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);
}
效果图如下:
图二十七、代码运行效果图
兰州阴道炎米诺地尔酊治疗哪些人群的脱发
南通妇科哪家好
- 化繁为简,一枚读得懂的当今世界时腕表
- 夏日运动季 选一款动感腕表|封面天天见·逛姐出街
- 2022年东南大学英语语言文学考研经验、参考资料、备考指导
- 吉林市本轮疫情高风险沿海地区清零
- 肯豆的衣品真是“卡戴珊家之最”,漂亮有型,身材挑不出毛病
- 618值得入手的公开信好物,有TWS、云台相机,还有龙虾人二合一
- 湖北省创立方·大学生创业路演周会走进湖北省大学
- 用过这款洗面奶之后,再也只想换了!
- 李书福恰恰黄章背后:车机、手机一体化时代终将来临
- 被“误解”多年的鱼,没有鱼头和里奥,渔民卖的很便宜却被瞧不起
- 工信部:正在研究储备工业稳增长后半段政策措施
- 证监会:通过视频会议等形式 确保发审委会议、重组委会议、上市委会议正常推进