2012-04-10 55 views
1

我正在修補NURBS曲面到一些數據點上。我有一定數量的補丁和每個補丁17x17數據點的統一分辨率。度數值在每個方向上爲3。如何在生成NURBS曲面時施加C1連續性?

每個補丁都使用例程適合NURBS曲面。相鄰片之間的數據點相互匹配 - 因此C0連續性得到滿足。但我對C1的連續性沒有特別的要求。我應該如何修改我的算法以獲得C1連續性?

回答

1

有幾種方法可以做到這一點。

你可以做的一件事就是獨立解決,然後通過將邊界控制點放在兩個控制點的中點朝向兩個相鄰貼片的內部,強制相鄰的貼片爲C1。換句話說,如果你有四個控制點,Q0,Q1,P0和P1,其中P點在一個表面上,Q點在另一個表面上,並且P0 = Q0,則設置P0 = 0.5 *(Q1 + P1 )。如果NURBS貼片的結寬度不同或者您有超過4個NURBS貼片作爲角落,則此方程式需要不同。我還假設你有完全多個結節(貝塞爾結束條件)。

你可以做的另一件事是解決一個包含C1條件作爲線性等式約束的全局系統。這會給你一個最佳的結果,但它可能會慢很多。