Python Shapely intersection:平行平面

squ*_*shy 3 python geometry intersection polygon shapely

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

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

>>> 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
Run Code Online (Sandbox Code Playgroud)

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

是否有一些魔法我缺少在三个维度上进行塑造思考?我一直在谷歌搜索,但到目前为止我看到的每个例子都只是在两个方面.

end*_*ill 5

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

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

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