首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从点列表创建一个光滑的nurb

从点列表创建一个光滑的nurb
EN

Stack Overflow用户
提问于 2014-12-19 07:37:24
回答 1查看 1.7K关注 0票数 2

我正在开发一个3D图形应用程序,用户可以在其中绘制曲线。我记录由用户绘制的曲线,我想从记录的一组点创建一个平滑的nurb。我试着使用openNurbs库,但是我找不到一种方法来使用这个库来进行装配。我怎样才能把一组点配给护士呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-20 08:16:27

首先,我认为你不需要nurbs。拟合B样条曲线到你的数据点应该足够好。

如果你只有几十个点,那么你很可能希望B样条曲线能够精确地通过这些数据点。在这种情况下,您正在寻找样条插值算法。如果是这样的话,可以使用Catmull Rom样条或Overhauser样条来插值数据点。这两种方法都将创建C1三次样条,并且都很容易实现,而无需求解线性方程组。

如果你有几百个点,那么很可能你只希望B样条曲线靠近数据点。然后,你要寻找的算法是最小二乘拟合。您可以在网上找到很多文章(例如:link1 )。用B样条曲线进行最小二乘拟合的典型算法将涉及以下步骤:

1)为数据点选择参数化。弦长参数化是最小二乘拟合的典型选择。

2)选择B样条的度。通常,我们使用3度,即三次B样条.

3)确定B样条的控制点数。

4)根据前3步的信息确定节点向量。

5)用线性方程组求解B样条的控制点.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27561612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档