Question

Je travaille sur la détermination des relations (intersections de limites / intérieures) entre deux objets 3D (faces triangulaires) et tripblé sur SOPIELLE , que je suis intéressé à utiliser au lieu de mettre en œuvre mes propres fonctions d'intersection de points / segments / rayon / triangle.

Cependant, je suis dans le problème suivant:

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

Le problème que je semble courir est que les deux polygones sont égaux dans leurs projections orthogonales 2D (même triangle), mais dans différents plans (son sur Z= 1, d'autres à Z= 0), mais disentils sont égaux et intersect.

Y a-t-il une magie de la magie que je manquait de penser bien en 3 dimensions?J'ai été googling, mais chaque exemple que j'ai vu jusqu'à présent n'est que dans deux dimensions.

Était-ce utile?

La solution

Selon le manuel galbé , il indique que ce qui suitPour le plan de coordonnées Z pour les objets géométriques:

une troisième valeur de coordonnées Z peut être utilisée lors de la construction d'instances, mais n'a aucun effet sur l'analyse géométrique.Toutes les opérations sont effectuées dans l'avion X-Y.

Si vos calculs nécessitent le plan de coordonnées Z, vous risquez de ne pas être pour vous.Bien sûr, vous pouvez essayer d'obtenir les points du polygone comme une liste et de le comparer à d'autres polygones.Toutefois, si vous souhaitez avoir une bibliothèque géométrique Python pouvant gérer la dimension Z, vous pouvez trouver un >Ici .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top