2012-02-18 21 views
4

我正在使用GEOS(in Python/Django)來操縱一些3d元素。所有的拓撲操作都能在2D中完美工作。所以,我用3D多邊形創建了一個簡單的MultiPolygon(其實很簡單,它只是一個垂直平面的集合),還有一個也是3D的LineString。現在,我只是想這些的交集(我相信會一直的三維點列表):Python中的三維幾何拓撲(例如十字路口)

>>> l = LineString([0, 0, 0], [1, 1, 1]) 
>>> p = Polygon([[1, 0, 0], [0, 1, 0], [0, 1, 1000], [1, 0, 1000], [1, 0, 0]]) 
>>> p.intersects(l) 
False 

那麼OK,GEOS不支持拓撲操作與3D數據......嗯,有必須有很多圖書館可以爲我做對嗎?所以我GOOGLE了,我只是找不到一個!所以,如果有人有一個指針,這將是偉大的...

編輯

有一個類似的問題爲Intersections of 3D polygons in python,但是這並沒有給任何令人滿意的答案(見註釋)。

+0

[python中三維多邊形的交點]可能的重複(http://stackoverflow.com/questions/2549708/intersections-of-3d-polygons-in-python) – plaes 2012-02-18 08:37:59

+0

@plaes:除了[3D多邊形的交點在python中]沒有任何好的答案。他們建議使用pvtrace,它可以追蹤一些光線:我提醒你我正在使用'MultiPolygons'和'LineString':遍歷所有多邊形,線段的所有線段並計算每個線段的多邊形INTER段將非常不夠。 – sebpiq 2012-02-18 08:44:09

+0

加上,只要去pvtrace的網站,尋找文檔,然後告訴我,如果你想使用它... – sebpiq 2012-02-18 08:45:01

回答

2

我仍然不相信圖書館有一個單獨的「很好的選擇」來做到這一點在python中,但一些有前途的項目正在進行中,其中最重要的改進之一就是谷歌代碼cgal-bindings

CGAL從版本4以後的新許可條件(GPL/LGPL)也使該主題的原始question的某些部分過時。