python – 匀称交叉:平行平面

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

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

>>> 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),但是Shapely说他们是平等和相交.

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

解决方法:

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

A third z coordinate value may be used when constructing instances, but has no effect on geometric analysis. All operations are performed in the x-y plane.

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

上一篇:JavaScript-Google Maps V3几何库-插值不返回预期的纬度/经度


下一篇:java.awt.geom.Area减法后返回多个部分?