闭合B样条曲线算法?

Maverix3 2012-11-12 01:52:26
现在我有一些离散点,我需要利用B样条拟合这些离散点得到一条光滑曲线的各个坐标点。如果是非闭合的b样条曲线,网上可以找到现成的算法(http://paulbourke.net/geometry/spline/index2.html),但是闭合的曲线我实在找不到了。主要问题是闭合以后首位点的斜率不连续。
...全文
321 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
libralibra 2012-11-12
引用 2 楼 Maverix3 的回复:
引用 1 楼 libralibra 的回复:你发的那个网页是根据控制点和节点生成曲线的吧 你需要找的是B样条曲线"反算"的算法,从型值点反算控制点与节点.好好找找,资料还是有些.另外北航施法中有本关于样条曲线的书也不错. 开与闭无所谓,因为反算的时候,为了减少方程个数,肯定会弄成[0,0,0,0,....1,1,1,1](如果是三次样条)这种的节点,那样曲线会通过……
正算不就是公式吗? 控制点有,节点序列有,套公式计算就可.根据阶次(一般是3次),针对每一个t∈[0,1],可以计算得到一个点,这些点连起来就是样条曲线;根据t取值的稠密,可以得到不同光滑度的曲线.
回复
Maverix3 2012-11-12
引用 1 楼 libralibra 的回复:
你发的那个网页是根据控制点和节点生成曲线的吧 你需要找的是B样条曲线"反算"的算法,从型值点反算控制点与节点.好好找找,资料还是有些.另外北航施法中有本关于样条曲线的书也不错. 开与闭无所谓,因为反算的时候,为了减少方程个数,肯定会弄成[0,0,0,0,....1,1,1,1](如果是三次样条)这种的节点,那样曲线会通过首末控制点,所以那里的曲率你可以自己指定,一……
不是反算,是正算。 我现在生成了不圆滑的多边形,然后我想使用b-spline插值得到全部插值点的坐标。
回复
libralibra 2012-11-12
你发的那个网页是根据控制点和节点生成曲线的吧 你需要找的是B样条曲线"反算"的算法,从型值点反算控制点与节点.好好找找,资料还是有些.另外北航施法中有本关于样条曲线的书也不错. 开与闭无所谓,因为反算的时候,为了减少方程个数,肯定会弄成[0,0,0,0,....1,1,1,1](如果是三次样条)这种的节点,那样曲线会通过首末控制点,所以那里的曲率你可以自己指定,一般弄成邻接控制点的直线斜率即可,因为样条曲线肯定位于控制点凸包内,那条边与曲线是相切的.
回复
发帖
图形处理/算法
创建于2007-09-28

1.9w+

社区成员

VC/MFC 图形处理/算法
申请成为版主
帖子事件
创建了帖子
2012-11-12 01:52
社区公告
暂无公告