我将NURBS曲面以补丁的形式放到某些数据点上。我有一定数量的补丁和每个补丁17x17数据点的统一分辨率。每个方向的度数值为3。
每个补丁都使用例程适合NURBS曲面。相邻补丁之间的数据点相互匹配 - 因此满足C0连续性。但我对C1连续性没有什么特别之处。我应该如何修改我的算法以保持C1连续性?
答案 0 :(得分:1)
有几种方法可以做到这一点。
你可以做的一件事就是独立解决,然后通过将两个控制点的中点处的边界控制点朝向两个相邻补丁的内部强制,将相邻的补丁强制为C1。换句话说,如果你有四个控制点,Q0,Q1,P0和P1,其中P点在一个表面上而Q点在另一个表面上,并且P0 = Q0,则设置P0 = 0.5 *(Q1 + P1 )。如果NURBS贴片的结宽度不同或者您有超过4个NURBS贴片作为角落,则此等式将需要不同。我还假设你有完全多个结尾(贝塞尔结束条件)。
您可以做的另一件事是解决一个包含C1条件作为线性等式约束的全局系统。这将为您提供最佳结果,但速度可能会慢得多。