通过型值点反求三次B样条控制点及插值点(含开曲线和闭曲线)

1 开门见山

目标:给定若干个有序的型值点坐标,要求用一条三次B样条曲线通过这些型值点,最后可以得到这条曲线的控制点和插值点,工程上用处较大的是插值点,可以细化轨迹。本文的代码有两种方法,方法一是求通过型值点的开曲线,思路参考东辰叶落大佬的代码B样条数据点反求控制点绘制曲线(源码);方法二是将第一个型值点和最后一个型值点连起来,求通过型值点的闭曲线。反求原理参考施法中的《计算机辅助几何设计与非均匀有理B样条》第八章第一节部分,建议配合代码一起看,更容易理解。

2 效果演示

2.1 BSplineTool.py 通过型值点的开曲线

蓝色为型值点,红色为控制点,绿色为插值点
通过型值点的开曲线

2.2 BSplineTool2.py 通过型值点的闭曲线

蓝色为型值点,红色为控制点,绿色为插值点
通过型值点的闭曲线

2.3 BSplineQTDemo.py 交互式界面(鼠标点击处记录为型值点,开曲线闭曲线可切换)

蓝色为型值点,红色为控制点,绿色为插值点
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3 代码

Python通过型值点反求三次B样条控制点及插值点(含开曲线和闭曲线)
Github
https://github.com/fangyongfan/BSpline

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值