內容包括:剖分算法、評價標准。
關鍵詞:voronoi、Delaunay
一、問題描述
多邊形是由一系列首尾相接的直線段組成的。凸多邊形邊界上或內部的任意兩點所連成的直線段上所有的點均在該凸多邊形的內部或邊界上。與凸多邊形對應的就是凹多邊形。簡單多邊形三角剖分問題的定義是:將簡單多邊形P分解為一系列不相重疊的三角形,同時不產生新的頂點,其結果記為T(P)。
談到三角剖分,經典Delaunay三角剖分,Delaunay三角剖分與Voronoi圖互為偶圖,一一對應,簡單了解一下Voronoi圖。Voronoi圖其實就是由每個節點到相鄰節點的垂直平分線組成的多邊形構成的一個多邊形集合,下圖一個8節點的Voronoi圖,其中的實線部分正是各個多邊形。
一般情況下,Voronoi圖的一個頂點同時屬於三個Voronoi多邊形,每個Voronoi多邊形內有且僅有一個節點。連接三個共點的Voronoi多邊形分別對應的三個節點則形成一個Delaunay三角形,所有這樣的三角形的集合就是著名的Delaunay三角剖分。上圖中的虛線部分就是與該Voronoi圖對偶的Delaunay三角剖分。
Delaunay三角剖分概述
簡單多邊形P的Delaunay三角剖分(簡記為DT(P))是所有內邊都是局部優化的T(P),它具有最小內角最大以及平均形態比最大的性質,能夠盡可能地避兔病態三角形的出現,更適合於有限元網格自動生成。如果存在一個簡單多邊形的三角剖分T(P),則對三角剖分中不是優化的邊進行對角線交換,可以在有限次的局部優化操作后轉化為DT(P)。
二、算法描述
關於Delaunay剖分三角形的算法,有翻邊算法、逐點插入算法、分割合並算法、Bowyer-Watson算法等。這幾種算法中,逐點插入算法比較簡單、易懂,下面僅僅針對該算法進行討論,該算法也是目前使用最為廣泛的Delaunay算法。
逐點插入的Lawson算法基本原理為:首先建立一個大的三角形或多邊形,把所有數據點包圍起來,向其中插入一點,該點與包含它的三角形三個頂點相連,形成三個新的三角形,然后逐個對它們進行空外接圓檢測,同時用Lawson設計的局部優化過程LOP進行優化,即通過交換對角線的方法來保證所形成的三角網為Delaunay三角網。
三、評分標准
上述基於散點的構網算法理論嚴密、唯一性好,網格滿足空圓特性,較為理想。由其逐點插入的構網過程可知,遇到非Delaunay邊時,通過刪除調整,可以構造形成新的Delaunay邊。在完成構網后,增加新點時,無需對所有的點進行重新構網,只需對新點的影響三角形范圍進行局部聯網,且局部聯網的方法簡單易行。同樣,點的刪除、移動也可快速動態地進行。但在實際應用當中,這種構網算法當點集較大時構網速度也較慢,如果點集范圍是非凸區域或者存在內環,則會產生非法三角形。感覺和多邊形划分稍微有些差距,但是本質差不多,注意lop進行優化,得到比較好的結果。