2011-07-07 78 views
1

我正在尝试为玛雅人编写一个创作工具,其中我必须满足的标准之一是维护NURBS曲线的长度。创作工具为用户提供了编辑NURBS曲线的控件,但它应该始终保持曲线的长度。当我说长度时,我的意思是曲线的弧长。 NURBS曲线和弧长之间是否存在直接关系?NURBS曲线:编辑时保持长度

所以理想情况下这是我如何设想我的系统工作,如果曲线的任何CV被改变,其他CV被改变,使得曲线的弧长被保留。任何想法来实现这将是非常有益的。

另外,您如何看待maya计算arcLength?我正在使用curveInfo节点来计算曲线的弧长。它是否总结了构成曲线长度的peicewise多项式线段?

回答

2

从数学的角度来看,NURBS曲线的确切长度是一个“丑陋的怪物”。事实上,即使贝塞尔曲线的长度已经是一个怪物(一般贝塞尔曲线的长度是一个椭圆积分)。但是即使假设近似长度(这是一个简单得多的问题)对于您来说已经足够了,我认为移动所有其他顶点以使得给定参数区间的长度保持不变的想法在数值上都是相当复杂的,并且可疑的(当然,解决方案并不是唯一的,那么应该使用什么度量来选择其他顶点的“最佳”调整,以便解决方案变得独一无二?)。

仅仅让用户移动一个顶点或更改一个单一的权重,然后显示沿特定弧长的曲线上的点就不够了吗?这是明确的,易于用户预测(对于用户希望保持固定的其他顶点没有“惊喜”)并且更容易实现。

0

此功能自永远构建到Maya中。只需绘制一条曲线,然后在曲线被选中时选择编辑曲线 - >修改曲线 - >锁定长度