前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python+Matplotlib绘制三次B样条曲线基函数图像

Python+Matplotlib绘制三次B样条曲线基函数图像

作者头像
Python小屋屋主
发布2023-08-29 17:19:02
2770
发布2023-08-29 17:19:02
举报
文章被收录于专栏:Python小屋Python小屋

问题描述:

在计算机图形学课程中,B样条曲线属于重要教学内容之一。已知,m+n+1个控制点可以确定m+1段光滑拼接的n次B样条曲线,其中第i段(i=0,1,2,...,m)曲线上点的定义为

上式用来确定曲线上的一个点,其中

表示控制点,基函数的定义为

对基函数进行展开和化简可得,3次B样条曲线的4个基函数分别为

和贝塞尔曲线类似,B样条曲线的控制点确定曲线的大致形状,曲线的性质则由基函数确定。

以端点性质为例,把t=0和t=1分别代入基函数定义和B样条曲线定义式,可得

下图分别是1段3次B样条曲线和3段光滑拼接的3次B样条曲线,可以看出,与上面推导的结论是相符的。

这一点也可以通过观察3次B样条曲线4个基函数的图像来验证,通过下面的函数图像可知,1段3次B样条曲线起点位置(t=0)由前3个控制点确定(权重或贡献分别为1/6、2/3、1/6),第4个控制点不起作用(权重为0);1段3次B样条曲线的结束位置(t=1)由最后3个控制点确定(权重分别为1/6、2/3、1/6),第1个控制点不起作用(权重为0)。这与通过数学公式推导的结果是一致的。

绘制上面基函数图像的代码如下:

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

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

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

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

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