Python Shapely intersection:平行平面

时间:2012-02-27 18:42:50

标签: python geometry polygon intersection shapely

我正在努力确定两个3D物体(三角形面)之间的关系(边界/内部交叉点),偶然发现shapely,我有兴趣使用它而不是实现我自己的点/段/ ray /三角交叉函数。

但是,我遇到了以下问题:

    >>> from shapely.geometry import Polygon
    >>> poly = Polygon([(0,1,1),(1,-1,1),(-1,-1,1)])
    >>> poly2 = Polygon([(0,1,0),(1,-1,0),(-1,-1,0)])
    >>> poly.intersects(poly2)
    True
    >>> poly.equals(poly2)
    True

我似乎遇到的问题是两个多边形在它们的2D正交投影中是相同的(相同的三角形),但是在不同的平面中(一个在Z = 1,另一个在Z = 0),但是形状正在说他们是平等的,相交的。

是否有一些魔法我缺少在3维中做出身材健康的思考?我一直在谷歌搜索,但到目前为止我看到的每一个例子都只是两个维度。

1 个答案:

答案 0 :(得分:5)

根据Shapely manual,它指出几何对象的z坐标平面如下:

  

构造实例时可以使用第三个z坐标值,但对几何分析没有影响。所有操作均在x-y平面中执行。

如果您的计算需要z坐标平面,那么Shapely可能不适合您。当然,您可以尝试将多边形的点作为列表并将其与其他多边形进行比较。但是,如果您想要一个可以处理z维度的Python几何库,您可以找到一些here