2010-03-31 9 views
3

Existe-t-il des outils ou bibliothèques open source (idéalement en python) disponibles pour effectuer de nombreuses intersections avec la géométrie 3D lue à partir d'un fichier de formes ESRI? La plupart des tests seront des segments de ligne simples par rapport aux polygones. J'ai regardé dans OGR 1.7.1/GEOS 3.2.0, et tandis qu'il charge les données correctement, les intersections résultantes ne sont pas correctes, et la plupart des autres outils disponibles semblent s'appuyer sur ce travail.Intersections de polygones 3D en python

Alors que CGAL aurait été une alternative, sa licence ne convient pas. La bibliothèque de géométrie générique de Boost a l'air fantastique, mais l'API est énorme, et ne semble pas supporter les lecteurs wkt ou wkb prêts à l'emploi.

Répondre

4

Un peu en retard sur la réponse, mais mon programme de suivi de rayons optiques python pvtrace fait exactement cela. Il fonctionnerait comme ceci:

1) Définir polygone avec aa liste de points et de faire un objet Polygon

points = [[0,0,0],[0,0.1,0],[0.1,0.1,-0.03],[0.1,0,-0.03]] 
polygon = Polygon(points) 

2) Obtenez le point d'intersection (s) avec un objet Ray

ray = Ray(position=(0,0,0), direction=(0,0,1)) 
print polygon.intersection(ray) 
+0

+1, C'est effectivement ce que j'ai fini par faire, mais comme vous l'avez souligné dans README de pvtrace (cool project btw.), Les performances pour un grand nombre d'opérations vectorielles en python peuvent être assez médiocres. Le résultat final a été une enveloppe de module d'extension python autour du code de Christer Ericson du livre "Real-Time Collision Detection". La seule raison pour laquelle je ne fais que marquer cela comme réponse est parce que j'attends de voir si quelqu'un va incorporer de meilleurs tests 3D dans OGR/GEOS. –

+0

Cela ressemble à un livre fantastique, merci (où puis-je trouver le code que vous avez mentionné?). –