【问题标题】:How to find the surface control point for any given NURBS control point?如何找到任何给定 NURBS 控制点的曲面控制点?
【发布时间】:2017-01-03 00:06:43
【问题描述】:

我已阅读 Pilot3d (http://www.pilot3d.com/NurbSecrets.htm) 的“NURBS 的肮脏小秘密”一文,并对位于表面的控制点很感兴趣。

它确实解释了每个控件都有一个各自的表面点,但并没有解释它们是如何找到的,以及移动表面控制点如何转换为原始控制点。如果我不得不猜测,当控制点的贡献达到最大值时,您会通过寻找表面上的点来找到表面控制点。不确定将更改转换回原始控制点

【问题讨论】:

    标签: nurbs


    【解决方案1】:

    我只是想一想就明白了这一点。

    如果考虑一般的 NURBS 方程:

    假设 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 分散到多个控制点,您可以很容易地控制效果的传播。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      • 1970-01-01
      • 2019-02-03
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多