2010-06-13 79 views
6

我最近遇到需要一個庫或一組庫來處理2D多邊形上的操作。我需要能夠執行布爾/裁剪操作(差異和聯合)和三角測量。用於多邊形操作的庫

到目前爲止,我找到的庫有poly2triCGALGPC。 Poly2tri對於三角測量看起來不錯,但我仍然留下布爾運算,我不確定它的成熟度。

CGAL和GPC是免費的,如果我自己的項目是免費的。我的特定項目不是商業的,所以我很猶豫是否支付或申請任何許可證。但我可能希望將我的代碼用於未來的商業項目,所以我對CGAL的開源許可和GPC的免費軟件限制猶豫不決。似乎沒有任何多邊形剪裁庫具有漂亮的BSD樣式許可證。

哦,而C/C++是首選。

回答

11

帆船是一個開源免費軟件多邊形裁剪庫(寫在Delphi和C++)^,做你問什麼(除了三角) - http://sourceforge.net/projects/polyclipping/

在我的測試中,Clipper比GPC更快且不易出錯(請參閱更詳細的比較 - http://www.angusj.com/delphi/clipper.php#features)。反穀粒幾何(AGG)圖形庫 - 它不做多邊形裁剪,但只是使用GPC(這對商業應用不是免費的)。然而,Clipper確實有AGG單元在AGG中進行裁剪就像GPC一樣簡單。

^編輯:Clipper現在也用C#編寫(與第三方編寫的Perl,Ruby,Haskell和Flash模塊一起)。

+0

有趣。你會有任何項目作爲使用你的圖書館的例子嗎?沒有冒犯,如果它是新的,但成熟和穩定是我正在尋找的東西。 – AJM 2010-06-18 21:29:58

+1

並沒有採取進攻:)。 幾個星期前我只完成了核心庫的編寫工作,所以我懷疑任何人還沒有時間來充分評估並將其整合到自己的代碼中。 – 2010-06-19 12:10:21

+0

Clipper將您限制爲整數。任何理由?例如,GPC沒有。 – cape1232 2011-09-29 18:27:36

0

http://www.antigrain.com/license/index.html是我可以找到的最接近的,如果它確實是商業用途,您可能不得不花費一分錢,但您現在可以免費使用它,並在稍後獲得許可。

+0

謝謝,儘管我只是在尋找一個幾何圖書館。 Anti-Grain是一個完整的渲染庫。 – AJM 2010-06-18 21:28:05

3

PolygonLib是一個用С++編寫的新多邊形剪裁庫,已在兩個項目中使用。它的數值穩健性,使用double座標,並針對具有大量頂點的多邊形進行了優化。有關GPC和PolyBoolean的性能和內存利用率的更多詳細信息和比較,請參見http://www.ulybin.de/products/polygonlib.php?lang=en

該庫的受限制評估版可免費用於非商業用途,並支持您需要的操作(三角測量除外)。

+0

有趣的答案......你參與這個libray?如果沒有,請說明;) – Stephan 2012-11-19 09:14:24

+2

我帶領圖書館的開發,開發了算法,API和架構。 – AKU 2012-11-19 11:30:48