3

私は 2 つの 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

私が遭遇しているように見える問題は、2 つのポリゴンが 2D 直交投影 (同じ三角形) で等しいが、異なる平面 (1 つは Z=1、もう 1 つは Z=0) にあるということですが、Shapely はそれらが等しく、交差します。

3 次元で見栄えを良くするために欠けている魔法はありますか? 私はグーグルで調べてきましたが、これまでに見たすべての例は 2 次元でしかありません。

4

1 に答える 1

6

Shapely manualによると、幾何学的オブジェクトの z 座標平面について次のように述べられています。

インスタンスを構築するときに 3 番目の z 座標値を使用できますが、幾何学的解析には影響しません。すべての操作は xy 平面で実行されます。

計算に z 座標平面が必要な場合、Shapely は適していない可能性があります。もちろん、ポリゴンのポイントをリストとして取得し、それを他のポリゴンと比較することもできます。ただし、z 次元を処理できる Python ジオメトリ ライブラリが必要な場合は、ここでいくつか見つけることができます。

于 2012-02-27T20:40:56.467 に答える