Pregunta

Hasta donde yo sé, no hay funcionalidad de polígono incorporada para Python. Quiero crear un mapa 3D y pensé que los polígonos serían la mejor manera de hacerlo.

No queriendo reinventar la rueda, busqué en Google y descubrí que hay muchas cosas de Python, pero no pude encontrar lo que quería. Entonces, antes de reinventar la rueda (o inventarla en su totalidad), ¿alguien sabe de un sistema Polygon para Python?

Tenga en cuenta que debe ser 3D (encontré bastantes 2D). Tenga en cuenta también que no estoy interesado en mostrarlos, sino en almacenarlos y la estructura de datos dentro de Python.

Gracias

¿Fue útil?

Solución

Uno de los sistemas de geografía / mapeo más completos disponibles para Python que conozco es GeoDjango . Esto funciona además del Django , un marco MVC. Con él viene una gran colección de herramientas de cálculo de polígonos, líneas y distancias que incluso pueden tener en cuenta la curvatura de la superficie de la tierra si es necesario.

Dicho esto, la forma más rápida en que puedo pensar para producir un mapa 3D es usando un mapa de altura. Cree una lista bidimensional de tuplas que contengan coordenadas (x, y, z). Cada tupla representa un punto uniformemente espaciado en una cuadrícula, mapeado por las dimensiones de la matriz. Esto crea un plano simple a lo largo de los ejes X y Z; El plano de tierra. Los polígonos que forman el plano son quads, un polígono con cuatro lados.

Luego, para producir la altura tridimensional, simplemente asigne a cada punto un valor Y. Esto creará picos y valles en su plano de tierra.

La forma en que renderice esto dependerá de usted, y convertir su cuadrícula de puntos en un formato de polígono que algo como OpenGL pueda entender puede tomar algo de trabajo, pero eche un vistazo a Visual Python , es la biblioteca 3D más simple que he visto para Python.

Otros consejos

Creo que te refieres a Poliedro, no a Polígono ... y quizás quieras mirar vpython

CGAL es una biblioteca de geometría C ++ que, entre otras cosas, modela Polyhedra (formas 3D de superficie plana)

Tiene enlaces de Python disponibles. La documentación para la clase Polygon3 está aquí: http://cgal-python.gforge.inria.fr/Manual /CGAL.Polyhedron.html#Polyhedron_3

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top