2008-10-08 46 views
7

我有興趣閱讀和理解2D網格算法。谷歌搜索顯示a lot of papers and sources,但大多數都是太學術,並沒有太多初學者的一面。A閱讀網格算法和網格庫

那麼,這裏有人會推薦任何閱讀資源(適合初學者),還是開源實現,我可以從一開始學習?謝謝。另外,與三角形網格生成相比,我更關注四邊形網格和混合網格(四邊形和三邊形組合)。

回答

5

我第二次回答David關於Jonathan Shewchuk's網站的回答是一個很好的起點。

在開源軟件方面,這取決於你在找什麼。

  • 如果您有興趣生成網格,您可以查看CGAL的代碼。瞭解CGAL代碼的低級部分對於初學者來說太多了。然而,即使對於初學者來說,查看更高級別的算法也可能非常有趣。另請注意,documentation of CGAL非常詳細。
  • 您也可以看看TetGen,但它的源代碼是單片的,沒有文檔記錄(它更多的是終端用戶軟件而不是庫,即使它也可以簡單地從其他程序中調用)。儘管如此,它的可讀性還是相當可觀的,並且user manual包含了一些網格生成的簡要介紹以及一些參考文獻。
  • 如果你還對網格處理感興趣,你可以看看OpenMesh

有關您的目標的更多信息肯定有助於提供更相關的指針。

5

您的Google搜索的第一個鏈接將帶您到Jonathan Shewchuk's網站。這實際上並不是一個糟糕的開始。他有一個名爲triangle的程序,您可以下載二維三角測量。在該頁面上,有一個link用於creating triangle中的引用,包括指向triangluation algorithm的說明的鏈接。

有幾種網格生成方法。其中最常見的是創建Delaunay triangulation。對一組點進行三角剖分相當簡單,並且有幾種算法可以實現這一點,其中包括Watson's和Rupert's,如在三角形中使用的 當您想創建一個約束三角剖分時,其中三角剖分的邊緣與輸入形狀的邊緣相匹配,有點難,因爲你需要恢復某些邊緣。

我會從理解Delaunay三角測量開始。然後也許看一些其他的網格算法。

一些共同的話題,你將在網格生成的文件發現是

  • 穩健性 - 那就是如何處理浮點舍入誤差。
  • 網格質量 - 確保三角形/四面體的形狀接近正方形。這是否重要取決於你爲什麼要創建網格。對於分析工作非常重要,如何選擇將網格中的節點插入到網格中以提供良好的網格分佈。
  • 網格速度
  • 四邊形/六面體網格生成。這比使用三角形/四面體更難。

3D網格生成比2D更難所以很多的論文是關於3D生成

網格生成是一個大的課題。如果您可以提供更多關於您感興趣的方面(例如2D或3D)的信息,這將會很有幫助。如果您能夠了解您要做什麼,那麼也許我可以找到一些更好的信息來源。

+0

我第二個這個。如果使用網格來近似函數,則網格質量很重要:近似誤差(在H^1範數中,即考慮到梯度的均方誤差)取決於三角形的「厚度」:他們內圈的半徑與他們的外圈有關。等邊三角形是最好的,但是當這些點固定時,要求太高,而Delaunay三角剖分就是在給定頂點的情況下獲得最佳三角剖分。 – 2010-11-02 21:01:39