贝塞尔曲面上的deCasteljau算法

时间:2014-07-14 20:09:06

标签: algorithm bezier surface

大家好我有两个与Decasteljau算法有关的问题,它们更多是一般性问题,但如果我对,它可以帮助解决许多问题。这就是:

我们有一些sufrace:Σ(i = 0,n)Σ(j = o,m)Bi,n(U),Bi,m(v)Pi,j分析我发现我们先说一个参数u = uo的某个值,然后我们将其他参数v - > 1获取一组点,然后将u递增1等....用于循环代码语言中的循环。我的问题是我们可以修复一个参数U = Uo得到什么值,然后只计算参数上的点v?因为一条曲线上的所有点也在表面上,并且如果曲线之间的距离接近零(实际上是迭代),我们可以将DeCasteljau算法仅应用于一组曲线,仅使用一个参数。或者我得到了一些东西错误?:) 第二个问题是我还没有真正弄清楚我们真正需要什么DeCasteljau算法,除非我们手工绘制曲线?如果我们知道曲线的顺序,我们可以很容易地形成该曲线顺序的Bernstain多项式和给定值的参数值的计算点。因为当你解开Decasteljau时,你得到的是Bernstain多项式? 就像我说的那样,请帮助我弄错了吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以修复一个参数(比如U)并更改另一个参数(V)以生成iso-U曲线。

你可以看到这些东西好像你有一个NxM控制点阵列。如果对U执行第一次插值(实际上是M个插值涉及N个控制点),则会得到M个新的控制点,用于定义Bezier曲线。通过改变U,曲线在空间中移动。

De Casteljau的算法用于方便:它通过在控制点之间使用级联线性插值来计算插值。对伯恩斯坦多项式的直接评估需要对系数进行预计算,并且即使用霍纳方案实现也不会更快,并且在数值上可能不太稳定。

De Casteljau的算法也因其几何解释以及与细分过程的关联而受到赞赏:如果你想为Bezier曲线的一部分建立控制点,De Calsteljau' s提供他们。