前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python+OpenGL绘制任意长度和次数的B样条曲线

Python+OpenGL绘制任意长度和次数的B样条曲线

作者头像
Python小屋屋主
发布2022-06-05 10:10:36
8940
发布2022-06-05 10:10:36
举报
文章被收录于专栏:Python小屋Python小屋

相关知识:

对于给定的m+n+1个控制点,可以绘制m+1段光滑拼接的n次B样条曲线,每段曲线上点的位置由n+1个控制点决定,其中第i段曲线上参数t(0<=t<=1)对应的点为

上面的式子用来计算第i段曲线上的一个点,其中,基函数定义为

任务描述:

编写Python程序,调用OpenGL,绘制B样条曲线。

在空白处单击鼠标左键可以增加控制点并延长B样条曲线,鼠标左键单击某个控制点选中之后可以移动其位置以影响局部曲线形状,鼠标右键单击最后一个控制点可以将其删除。按下键盘上数字1可以绘制一次B样条曲线,按数字2绘制二次B样条曲线,按数字3绘制三次B样条曲线。

运行效果:

http://mpvideo.qpic.cn/0bc3heaboaaa44alqf4oxbrfaoodc44qafya.f10002.mp4?

参考代码:

如果需要绘制更高次曲线,只需要对ascii_key()方法的代码略加修改即可。另外,上面的代码严格按照B样条曲线的定义进行编写,重复计算基函数值会导致效率略低,可以使用Numpy进行改写和优化,过几天再推送相关代码。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档