闭合B样条曲线算法?

Maverix3 2012-11-12 01:52:26
现在我有一些离散点,我需要利用B样条拟合这些离散点得到一条光滑曲线的各个坐标点。如果是非闭合的b样条曲线,网上可以找到现成的算法(http://paulbourke.net/geometry/spline/index2.html),但是闭合的曲线我实在找不到了。主要问题是闭合以后首位点的斜率不连续。
...全文
732 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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](如果是三次样条)这种的节点,那样曲线会通过首末控制点,所以那里的曲率你可以自己指定,一般弄成邻接控制点的直线斜率即可,因为样条曲线肯定位于控制点凸包内,那条边与曲线是相切的.

19,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧