2017-01-01 113 views
1

我已经通过Pilot3d(http://www.pilot3d.com/NurbSecrets.htm)的“NURBS的肮脏的小秘密”的文章阅读,并通过表面定位控制点好奇。如何为任何给定的NURBS控制点找到曲面控制点?

它解释说,每个窗口都具有各自的面点,但它不会走得太远,因为解释它们是如何发现,如何移动地面控制点转化为原来的控制点。如果我不得不猜测,当控制点的贡献达到最大值时,您将通过查找曲面上的点来找到曲面控制点。不知道有关转换变回原来的控制点

回答

1

我有些只是想着它想通了这一点。

如果考虑一般的NURBS公式:

nurbs equation

可以说,C(u_pi)是与控制点相关联的表面上的点(你如何决定这在技术上是任意的,但似乎最接近控制点的面点会产生最好的结果),而且你想用一个矢量M.

所以,现在你需要找到新的P_I,考虑到这个翻译来移动它。如果我们取一般方程并减去除P_i(我们感兴趣的控制点)之外的所有控制点的贡献,则我们得到以下方程(假设所有权重均为1):

N_i,n * P_i + M = n_i个,N *(P_I + P_idelta)

然后,我们可以很容易地看出:

M = n_i个,N * P_idelta

,因此可以通过控制NURBS表面的形状移动表面上的点而不是控制点。这种方法的缺点是附近的表面点也会移动,但速度并不快。您可以很容易地通过将Delta增加到几个控制点来控制效果的传播。