NURBS曲线:编辑时保持长度



我正试图为Maya编写一个创作工具,其中一个我必须满足的标准是保持NURBS曲线的长度。编写工具为用户提供了编辑NURBS曲线的控件,但应该始终保持曲线的长度。当我说长度时,我指的是曲线的弧长。NURBS曲线和它的弧长有直接关系吗?

所以理想情况下,这就是我设想的系统工作方式,如果曲线的任何CV被改变,其他CV被改变,曲线的弧长被保留。任何实现这一点的想法都将非常有帮助。

另外,你认为maya是如何计算arlength的?我使用一个curveInfo节点来计算曲线的arlength。它只是把构成曲线长度的多项式线段相加吗?

从数学的角度来看,NURBS曲线的确切长度是一个"丑陋的怪物"。事实上,即使贝塞尔曲线的长度也已经是一个怪物(一般贝塞尔三次曲线的长度是一个椭圆积分)。

但即使假设近似长度(这是一个更简单的问题)对你来说已经足够了,我认为移动所有其他顶点以使给定参数区间的长度保持不变的想法在数值上非常复杂且值得怀疑(当然解决方案不是唯一的,那么应该使用什么度量来选择其他顶点的"最佳"调整以使解决方案变得唯一?)。

仅仅让用户移动单个顶点或改变单个权重,然后沿着曲线显示特定弧长处的点,难道还不够吗?这很好地定义了,用户很容易预料到(对于用户希望保持固定的其他顶点没有"惊喜"),并且更容易实现。

这个功能是永远内置到玛雅。只要画一条曲线,然后当曲线被选中时选择编辑曲线->修改曲线->锁定长度

相关内容

  • 没有找到相关文章

最新更新