Python匀称交叉点:平行平面

问题描述:

我正在确定两个3D对象(三角面孔)之间的关系(边界/内部交点),并且偶然发现我有兴趣使用shapely,而不是实现我自己的点/段/射线/三角相交功能。Python匀称交叉点:平行平面

然而,我运行到以下问题:

>>> 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个维度中认真思考?我一直在使用Google,但我迄今为止看到的每个示例都只有两个维度。

根据该Shapely manual,它指出用于z以下坐标平面为几何对象:

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

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

+0

哇,我不能相信我错过了。今天早上我正盯着文件几个小时,只是掩饰了它。感谢您指出了这一点。 – squishy 2012-02-27 21:03:28