【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):
getBernste

本文介绍了如何使用OpenGL3.3和IMGUI库绘制Bezier曲线。首先,详细阐述了Bezier曲线的基本定义及其计算方法。接着,展示了如何将计算得到的曲线点整合到OpenGL3.3中进行渲染。然后,通过IMGUI实现了控制点位置的调整、曲线颜色的修改以及撤销功能。最后,提供了代码实现的GitHub链接供读者参考。
最低0.47元/天 解锁文章
3813

被折叠的 条评论
为什么被折叠?



