Domanda

Sto lavorando per determinare le relazioni (confine/intersezioni interne) tra due oggetti 3D (facce triangolari) e inciampato Formoso, che sono interessato a utilizzare invece di implementare le mie funzioni di intersezione punto/segmento/raggio/triangolo.

Tuttavia, sto affrontando il seguente problema:

>>> 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

Il problema in cui mi sembra di imbatterti è che i due poligoni sono uguali nelle loro proiezioni ortogonali 2D (stesso triangolo), ma in diversi piani (uno a z = 1, altri a z = 0), ma sta dicendo che sono uguale e interseca.

C'è un po 'di magia che mi manca per far pensare a 3 dimensioni? Ho cercato su Google, ma ogni esempio che ho visto finora è solo in due dimensioni.

È stato utile?

Soluzione

Secondo il Manuale benissimo, afferma che quanto segue per il piano di coordinate Z per oggetti geometrici:

Un terzo valore di coordinate Z può essere utilizzato quando si costruiscono istanze, ma non ha alcun effetto sull'analisi geometrica. Tutte le operazioni vengono eseguite sul piano XY.

Se i tuoi calcoli richiedono il piano di coordinate Z, allora potrebbe non essere per te. Certo, potresti provare a ottenere i punti del poligono come elenco e confrontarlo con altri poligoni. Tuttavia, se si desidera avere una libreria geometrica Python in grado di gestire la dimensione Z, puoi trovarne alcuni qui.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top