【CG】OpenGL3.3+IMGUI_绘制Bezier曲线
@(CG)
Bezier Curve的基本定义
Bezier Curve的定义如下:
根据4个控制点拟合Bezier Curve,因此生成的是3次的多项式参数方程。
根据上面的Bezier Curve的定义,能够求出根据4个控制点拟合的Bezier Curve的所有点,然后利用opengl将其绘制。
主要用到的函数:
// Bezier functions
int getBernsteinPre(int ii, int n);
vector<int> getBernsteinCoeff(int n);
Point getBezierPoint(float t, vector<Point> ctrlPoints, vector<int> bern, int n);
vector<Point> Bezier(vector<Point> ctrlPoints, int pres);
// convert a vector to vertices
float *creatVertices(vector<Point> v);
说明:
getBernsteinPre:接受参数ii和多项式次数n,计算的是Bernstein基函数的前缀系数并返回(ii就是图中的i):
getBernsteinCoeff:输入多项式次数n,得到所有的Bernst