【CG】OpenGL3.3+IMGUI_绘制Bezier曲线

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

【CG】OpenGL3.3+IMGUI_绘制Bezier曲线

@(CG)

Bezier Curve的基本定义

Bezier Curve的定义如下:

1

根据4个控制点拟合Bezier Curve,因此生成的是3次的多项式参数方程。

2

根据上面的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):

3

getBernsteinCoeff:输入多项式次数n,得到所有的Bernst

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值