離散微分與計算幾何

三角剖分曲面(triangulated surface)

拿一個光滑曲面——汽車彎曲的引擎蓋、人臉、地形——用一片由平面三角形拼成的被子去逼近它,三角形的角落落在曲面上。結果就是三角剖分曲面:一個二維單純複形,三角形鋪滿這個形狀,使得在每個頂點周圍,三角形扇形展開成單一圓盤,而沿每條內部邊恰有兩個三角形相會。這是電腦圖學與幾何處理的主力物件,在那裡通常稱為三角網格。

精確地說,三角剖分曲面是一個單純複形 K,外加組合流形條件:每個頂點的連結(link)是單一邊環(或在邊界頂點上是單一路徑),於是 |K| 是一個拓樸曲面,可能帶邊界。資料是三張清單——頂點在 R^3 中的位置、邊、三角形面——加上它們之間的關聯關係;經典的半邊(half-edge)或四邊(quad-edge)資料結構儲存這些,讓你能在常數時間內從一個三角形走到它的鄰居。曲率與其他光滑量並非免費奉送:它們必須離散地重新導出,例如把高斯曲率以角虧的形式集中於頂點,或把離散平均曲率附在邊上。

三角剖分曲面之所以重要,是因為我們掃描、模擬或繪製的幾乎一切都以網格形式存在。組合結構控制拓樸——歐拉公式 V - E + F = 2 - 2g 釘住了虧格 g——而頂點位置承載幾何,兩者彼此獨立:細分三角剖分會同時改變 V、E、F,卻不改變虧格。一個微妙而重要的誠實點是:網格量取決於三角剖分,而非僅取決於底層的光滑曲面:一個形狀糟糕的網格(細長片、極鈍角三角形)可能讓離散曲率與餘切拉普拉斯算子表現失常,即使它所逼近的曲面完全光滑。

正二十面體是一個三角剖分曲面,V = 12、E = 30、F = 20,得 V - E + F = 12 - 30 + 20 = 2,故虧格為 0——一個三角剖分的球面。把每個三角形細分成四個(Loop 或 4-1 分裂)會放大計數,但 V - E + F = 2 仍然不變。

細化網格會改變 V、E、F,卻絕不改變歐拉示性數,因而絕不改變虧格。

一個常見錯誤是把網格當成光滑曲面本身:離散曲率、面積與拉普拉斯算子既是幾何的函數,也是三角剖分的函數,它們僅在適當的細化與形狀品質假設下才收斂到其光滑極限,而非對任何隨便的網格都成立。

又称
triangle meshsurface mesh三角網格曲面網格