2010-03-31 83 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