利用Eigen进行B-Spline 曲线插值运算

   B-Spline curve即B样条曲线,1972 年Gordon、Riesenfeld 等人提出,为了解决Bezier曲线的不足(Bezier 曲线不能做局部修改;Bezier 曲线的拼接比较复杂)。B样条曲线的计算原理可参考这里,或者看中文的更详细的介绍可参考《计算机辅助几何设计与非均匀有理B样条》这本书。

    Eigen库unsupported部分里有实现B-Spline 曲线插值运算,详见http://eigen.tuxfamily.org/doxdevel/unsupported/group__Splines__Module.html

    我们一般的曲线拟合方法是这样一个过程:给定一些样本(x,y)点,拟合一个曲线函数y=f(x),拟合完之后对给定的x坐标可以计算出曲线上相应的y坐标值。但是这个b样条曲线方法不一样,他是给定一堆控制点Q比如二维(x,y),给定矢量节点U={u0,u1,u2,……,um},得到一个吃C(u)方程,C(u)得到的是一个点。那我们对于一个x值,怎么根据拟合出来的C(u)计算曲线上对应的y值呢。

    这里有个利用Eigen对给定x计算B样条上对应y值的简单的例子可参考下面网址这里这里,这么做的原理有人懂吗?求高手指教!

你可能感兴趣的:(曲线拟合)