1

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

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

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

4

2 回答 2

2

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

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

仅让用户移动单个顶点或更改单个权重然后沿曲线显示特定弧长的点对您来说还不够吗?这是明确定义的,易于用户预期(不会对用户希望保持固定的其他顶点感到“惊讶”)并且更容易实现。

于 2011-07-07T16:48:40.580 回答
0

此功能自始至终都内置于 Maya 中。只需绘制一条曲线,然后在选择曲线时选择Edit Curves -> Modify Curves -> Lock Length

于 2012-09-16T09:59:14.530 回答