贝塞尔曲线c++代码
时间: 2023-10-21 07:04:58 浏览: 248
贝赛尔曲线的C++实现
贝塞尔曲线是一种数学方法,可以用来绘制平滑的曲线。下面是一个简单的C++代码示例,用于绘制二次贝塞尔曲线:
```c++
#include <iostream>
#include <graphics.h>
using namespace std;
// 控制点结构体
struct Point
{
int x;
int y;
};
// 计算贝塞尔曲线上的点
Point calculateBezierPoint(Point p0, Point p1, Point p2, float t)
{
int x = (1 - t) * (1 - t) * p0.x + 2 * t * (1 - t) * p1.x + t * t * p2.x;
int y = (1 - t) * (1 - t) * p0.y + 2 * t * (1 - t) * p1.y + t * t * p2.y;
Point p = {x, y};
return p;
}
int main()
{
initgraph(640, 480); // 初始化绘图窗口
// 定义控制点
Point p0 = {100, 100};
Point p1 = {300, 50};
Point p2 = {500, 100};
// 绘制控制点
setcolor(BLUE);
setfillcolor(BLUE);
fillcircle(p0.x, p0.y, 5);
fillcircle(p1.x, p1.y, 5);
fillcircle(p2.x, p2.y, 5);
// 绘制贝塞尔曲线
setcolor(RED);
for (float t = 0; t <= 1; t += 0.01)
{
Point p = calculateBezierPoint(p0, p1, p2, t);
putpixel(p.x, p.y, RED);
}
getch(); // 等待用户按任意键
closegraph(); // 关闭绘图窗口
return 0;
}
```
在这个示例中,我们使用了 `graphics.h` 头文件中的函数来绘制图形。如果你的编译器不支持 `graphics.h`,你可以使用其他绘图库来替代。
阅读全文