我正在尝试为Maya编写一个创作工具,其中我必须满足的标准之一是保持NURBS曲线的长度。创作工具为用户提供了编辑NURBS曲线的控件,但应始终保持曲线的长度。当我说长度时,我指的是曲线的弧长。NURBS曲线和它的弧长之间有没有直接的关系?
所以理想情况下,这就是我设想的系统的工作方式,如果曲线的任何cv被改变,其他的cv也被改变,使得曲线的弧长保持不变。任何实现这一点的想法都是非常有帮助的。
另外,你认为玛雅是如何计算arcLength的?我使用curveInfo节点来计算曲线的arcLength。它只是将构成曲线长度的逐周多项式线段相加吗?
发布于 2011-07-07 16:48:41
从数学的角度来看,NURBS曲线的确切长度是一个“丑陋的怪物”。事实上,即使是贝塞尔曲线的长度也已经是一个怪物(一般的贝塞尔三次曲线的长度是一个椭圆积分)。
但是,即使假设近似长度(这是一个简单得多的问题)对您来说就足够了,我认为移动所有其他顶点以使长度在给定的参数区间内保持不变的想法在数值上是相当复杂的,并且是值得怀疑的(当然,解决方案不是唯一的,那么应该使用什么度量来为其他顶点选择“最佳”调整,从而使解决方案变得唯一?)。
仅仅让用户移动单个顶点或更改单个权重,然后显示曲线上特定弧长的点,这对您来说还不够吗?这是定义良好的,易于用户预期(对于用户想要保持固定的其他顶点没有“惊喜”),并且更容易实现。
发布于 2012-09-16 09:59:15
此功能将永远内置于Maya中。只需绘制一条曲线,然后在选择曲线的同时,选择编辑曲线->修改曲线->锁定长度。
https://stackoverflow.com/questions/6612350
复制相似问题