2010-03-31 33 views
3

是否有任何開源工具或庫(理想情況下在python中)可用於執行從ESRI shapefile中讀取的具有3D幾何的大量交集?大多數測試將是簡單的線段與多邊形。蟒蛇中的三維多邊形的交集

我已經看過OGR 1.7.1/GEOS 3.2.0,雖然它正確加載數據,但是由此產生的交叉點不正確,並且大多數其他可用工具似乎都基於此工作。

雖然CGAL本來是一個替代品,但它的許可證並不適合。 Boost通用幾何庫看起來很棒,但api非常龐大,似乎並不支持開箱即用的wkt或wkb閱讀器。

回答

4

有點遲了回答,但我的蟒蛇光線追蹤程序pvtrace正是這樣做。它的工作是這樣的:

1)定義多邊形點的AA名單,並多邊形對象

points = [[0,0,0],[0,0.1,0],[0.1,0.1,-0.03],[0.1,0,-0.03]] 
polygon = Polygon(points) 

2)獲取的交點(S)與雷對象

ray = Ray(position=(0,0,0), direction=(0,0,1)) 
print polygon.intersection(ray) 
+0

+1,這實際上是我最終做的事情,但正如你在pvtrace的README中所指出的(很酷的項目btw),python中的大量向量操作的性能可能很差。最終的結果是一本python擴展模塊封裝了Christer Ericson的書「實時碰撞檢測」中的代碼。我只是沒有把這個標記爲答案的唯一原因是我等着看有沒有人會將更好的3D測試納入OGR/GEOS。 – 2011-01-11 04:10:40

+0

這看起來像一本很棒的書,謝謝(我在哪裏可以找到你提到的代碼?)。 – 2011-01-11 21:06:04