¿Buena biblioteca de geometría en python?

Estoy buscando una biblioteca buena y bien desarrollada para manipulaciones geométricas y evaluaciones en python, como:

  • evalúa la intersección entre dos líneas en 2D y 3D (si está presente)
  • evaluar el punto de intersección entre un plano y una línea, o la línea de intersección entre dos planos
  • Evaluar la distancia mínima entre una línea y un punto.
  • encontrar el ortonormal a un plano que pasa por un punto
  • rotar, traducir, reflejar un conjunto de puntos
  • Encuentra el ángulo diedro definido por cuatro puntos.

Tengo un libro de compendio para todas estas operaciones, y podría implementarlo, pero desafortunadamente no tengo tiempo, así que disfrutaría de una biblioteca que lo hace. La mayoría de las operaciones son útiles para los juegos, por lo que estoy seguro de que algunas de estas funcionalidades pueden encontrarse en las bibliotecas de juegos, pero preferiría no incluir funcionalidades (como gráficos) que no necesito.

Alguna sugerencia ? Gracias

Tal vez echar un vistazo a SymPy .

Shapely es un bonito envoltorio de python alrededor de la popular biblioteca GEOS .

Descubrí que pyeuclid es un gran paquete matemático euclidiano de propósito general. Aunque es posible que la biblioteca no contenga exactamente los problemas que mencionó, su infraestructura es lo suficientemente buena como para que sea más fácil escribirlos por su cuenta.

CGAL tiene enlaces Python también.

geometry-simple tiene clases Point Line Plane Movimiento en ~ 300 líneas, usando solo numpy; echar un vistazo.

Realmente quiero una buena respuesta a esta pregunta, y las anteriores me dejaron insatisfecho. Sin embargo, acabo de encontrar Pythonocc, que se ve muy bien, además de que carece de buenos documentos y aún tengo problemas con la instalación (aún no es compatible con pypi). La última actualización fue hace 4 días (19 de junio de 2011). Envuelve OpenCascade, que tiene un montón de geometría y funcionalidad de modelado. Desde el sitio web de pythonocc:

pythonOCC es un marco de desarrollo 3D CAD / CAE / PLM para el lenguaje de progtwigción Python. Ofrece características tales como operaciones topológicas y geométricas avanzadas, intercambio de datos (STEP, IGES, importación / exportación STL), mallado 2D y 3D, simulación de cuerpos rígidos, modelado paramétrico.

[EDIT: Ahora descargué pythonocc y comencé a trabajar con algunos de los ejemplos]

Creo que puede realizar todas las tareas mencionadas, pero encontré que no es intuitivo de usar. Se crea casi en su totalidad a partir de envoltorios SWIG, y como resultado, la introspección de los comandos se vuelve difícil.

Puede estar interesado en el módulo Python SpaceFuncs del proyecto OpenOpt, http://openopt.org

SpaceFuncs es una herramienta para modelado geométrico 2D, 3D y N-dimensional con posibilidades de cálculos parametrizados, optimización numérica y sistemas de resolución de ecuaciones geométricas.

Python Wild Magic es otro código envuelto en SWIG. Sin embargo, es una biblioteca de juegos, pero podría manipular el archivo de la biblioteca SWIG para excluir cualquier material gráfico no deseado de la API de Python.