離散平均曲率(discrete mean curvature)
光滑曲面上的平均曲率量度曲面平均而言向內或向外彎曲多少——肥皂膜把這個量做成零。要在三角網格上得到一個誠實的離散版本,訣竅不是去擬合一個光滑曲面再微分,而是去問:曲面想往哪個方向、以多強的力道移動,才能最快縮小自己的面積?那個方向與力道就是離散平均曲率法向量,而它由餘切公式自然導出。
最乾淨的定義使用曲面面積的梯度。對一個有鄰居 v_j 的頂點 v_i,離散平均曲率法向量為 H(v_i) * N = (1 / (2*A_i)) * 對鄰居 j 求和 (cot(alpha_ij) + cot(beta_ij)) * (v_i - v_j),其中 alpha_ij 與 beta_ij 是邊 (i, j) 在共有它的兩個三角形中所對的兩個角,A_i 是 v_i 周圍對偶胞腔的面積(常取 Voronoi 或混合面積)。這個向量沿曲面法向,其長度是平均曲率大小,而且——關鍵地——它恰好是總面積對 v_i 的梯度的相反數。所以平均曲率流,亦即把每個頂點往面積下降最快的方向移動,字面上就是 d v_i / dt = -H(v_i)*N,而這同一個餘切表達式正是餘切拉普拉斯算子作用在座標函數上。
離散平均曲率是網格平滑、整流(fairing)與極小曲面計算的引擎:一個網格在離散意義下為極小,恰當此向量在每個頂點都消失時,即離散肥皂膜條件。有兩個誠實點要緊。第一,平均曲率是外蘊的——不同於內蘊的角虧,它取決於曲面如何擺在 R^3 中,故並非僅由邊長決定,而由實際頂點位置決定。第二,存在數種互相競爭的離散化(餘切/面積梯度式、施泰納/基於邊的法向圈方法等),它們在細化極限下一致,但在粗網格上彼此不同;別假定兩套程式碼的「平均曲率」場是同一個物件。
在網格的平坦區域,每個 cot(alpha) + cot(beta) 加權的 (v_i - v_j) 之和相消,H = 0——平面在離散意義下為極小,正如肥皂膜應有的樣子。在一個有雜訊的掃描上跑流 d v_i/dt = -H(v_i)*N,那些 |H| 很大的高頻隆起會最先被平滑掉;這正是平均曲率(拉普拉斯)網格平滑。
平均曲率法向量是面積梯度的相反數,所以沿著它走會縮小面積並平滑網格。
平均曲率是外蘊的且對正負號約定敏感:H 在球面上是否為正,取決於外向或內向法向的選擇,而前置因子(H 對 2H,平均對主曲率之和)在各文獻間不一。比較數值之前,務必確定法向定向與歸一化。