Topologia geometrica 3D (EG Intersection) in Python
Domanda
Sto usando GEOS (In Python/Django) per manipolare alcuni elementi 3D. Tutte le operazioni topologiche funzionano perfettamente in 2D. Quindi, ho creato un semplice MultiPolygon
con poligoni 3D (molto semplice in effetti, è solo una raccolta di aerei verticali) e a LineString
che è anche 3D. Ora volevo semplicemente l'intersezione di quelli (che credo sarebbe stato un elenco di punti 3D):
>>> l = LineString([0, 0, 0], [1, 1, 1])
>>> p = Polygon([[1, 0, 0], [0, 1, 0], [0, 1, 1000], [1, 0, 1000], [1, 0, 0]])
>>> p.intersects(l)
False
Quindi ok, GEOS non supporta le operazioni topologiche con dati 3D ... beh, ci devono essere molte librerie là fuori che possono farlo per me giusto ??? Quindi ho cercato su Google e non riesco a trovarne uno solo !!! Quindi se qualcuno ha un puntatore, sarebbe fantastico ...
MODIFICARE
C'è una domanda simile a Intersezioni di poligoni 3D in Python, ma questo non dà alcuna risposta soddisfacente (vedi commento).
Soluzione
Ancora non credo che ci sia una singola "buona scelta" di una biblioteca per farlo a Python, ma un certo numero di progetti promettenti sono in lavorazione, tra cui il primo migliorato CGAL-Bindings sul codice di Google.
Le nuove condizioni di licenza di CGAL dalla versione 4 in poi (GPL/LGPL) rendono anche alcune parti dell'originale domanda su questo argomento obsoleto.