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

开学第一课:一定不要这样问老师Python问题

中国大学MOOC“Python程序设计基础”第6次开课时间

董付国老师Python系列教材推荐与选用参考

=============

版权声明:由于公众号后台规则问题,本文暂时无法设置原创标记,但仍属原创内容,微信公众号“Python小屋”坚持只发原创技术文章。

=============

推荐教材:

《Python程序设计(第3版)》,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,2022年3月第12次印刷,山东省一流本科课程“Python应用开发”配套教材,清华大学出版社2020、2021年度畅销图书(本书第二版为2019、2020年度畅销图书)

Python+OpenGL绘制任意长度和次数的B样条曲线_第1张图片

京东购买链接:https://item.jd.com/12668739.html

天猫、当当、京东均有销售,可以选择自己常用平台搜索“董付国 第3版”找到本书。

配套资源:教学大纲(基于工程教育专业认证,含课程思政)、电子教案、微课视频、PPT课件、例题源码、习题答案、在线练习系统。

适用专业:计算机、网络工程、软件工程以及相关专业。

适用学时:>=64

页数:381

定价:59.8

微课视频:124个

教学大纲:《Python程序设计(第3版)》配套教学大纲

习题答案:《Python程序设计(第3版)》课后习题答案

====================

相关知识:

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

2be6be51bd0ec13efc87a9022def2d89.png

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

Python+OpenGL绘制任意长度和次数的B样条曲线_第2张图片

任务描述:

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

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

运行效果:

参考代码:

Python+OpenGL绘制任意长度和次数的B样条曲线_第3张图片

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

温馨提示:

关注微信公众号“Python小屋”,在公众号后台发送消息“大事记”可以查看董付国老师与Python有关的重要事件;发送消息“教材”可以查看董付国老师出版的Python系列教材(已累计印刷超过150次)的适用专业详情;发送消息“历史文章”可以查看董付国老师推送的超过1300篇原创技术文章;发送消息“会议”或“培训”可以查看近期董付国老师的培训安排;发送消息“微课”可以查看董付国老师免费分享的超过600节Python微课视频;发送消息“课件”可以查看董付国老师免费分享的Python教学资源;发送消息“小屋刷题”可以下载“Python小屋刷题软件客户端”,免费练习2222道客观题和510道编程题,题库持续更新;发送消息“编程比赛”了解Python小屋编程大赛详情。

你可能感兴趣的:(python,编程语言,java,人工智能,算法)