c++ geometry computational-geometry lgpl

c++ - cgal windows



Biblioteca de GeometrĂ­a 2D: alternativa LGPL a CGAL? (4)

CGAL parece hacer casi todo lo que necesito y un poco más para mi próximo proyecto. Puede crear polígonos a partir de segmentos de líneas de arco y ejecutar operaciones booleanas en ellos. Ya tiene paquetes de clasificación espacial que me ahorrarían mucho tiempo en algunas cosas y toda la biblioteca parece bastante estandarizada y bien planificada.

El problema es que la licencia es QPL (GPL para la próxima versión 4.0) para la mayoría de los paquetes (excepto los muy básicos). Tengo un presupuesto exiguo y probablemente no pueda reunir fondos para comprar las licencias comerciales para esos paquetes específicos en CGAL que lo requieren.

Mis necesidades específicas de tal biblioteca serían:

  • Exactitud exacta espacio euclidiano 2D
  • Polígonos complejos
  • Polígonos capaces de tener segmentos de línea curva (arco)
  • Operaciones booleanas en esos polígonos
  • Compensación de polígono
  • Partición de polígono o triangulación efectiva
  • Área inscrita y algoritmos de ajuste de polígono
  • Posiblemente algunas estructuras de clasificación espacial con búsquedas de rango circular

En general, estoy buscando una biblioteca de C ++ de geometría 2D bien redondeada con precisión exacta. Preferiblemente con MIT, LGPL de forma flexible o una licencia de bajo costo y libre de regalías por debajo de $ 500.

Boost tiene algunas estructuras básicas, pero por lo que puedo decir, carecen de una gran funcionalidad de nivel superior. ¿Alguna biblioteca que se haya expandido en esto? Consideraría hacerlo yo mismo, pero carezco de la experiencia para hacerlo bien y prolongaría un poco mi proyecto.

Para ser claros, no estoy buscando una biblioteca de gráficos 2D, solo estructuras de geometría puras.


¿Has mirado Boost.Geometry library? No está cerca de CGAL en términos de funcionalidad, pero podría ayudarte.


Eche un vistazo a Wykobi . Es una biblioteca con plantillas y puede crear una plantilla de la dimensión como 2D.

El costo de la biblioteca no está claro desde el sitio. Check


Eche un vistazo a las herramientas geométricas para gráficos por computadora .

  • Refinado durante una década
  • Documentación increíblemente buena, tanto en formato difícil y extensamente en formato PDF
  • Licencia de Boost

Cumple todos sus requisitos:

  • Espacio euclidiano bidimensional de precisión exacta: sí
  • Polígonos complejos: sí
  • Polígonos capaces de tener segmentos de línea curva (arco): sin sentido. Por definición, los polígonos están compuestos de segmentos de línea. Si está buscando splines y NURBS, la biblioteca los tiene.
  • Operaciones booleanas en esos polígonos: Sí
  • Compensación de polígono: no es claro lo que quiere decir. La biblioteca ciertamente admite la traducción.
  • Partición de polígono o triangulación efectiva: sí, triangulación de Delaunay y regiones de Voronoi
  • Algoritmos de ajuste de área inscrita y polígono: Sí
  • Posiblemente algunas estructuras de clasificación espacial con búsquedas de rango circular: Sí, ordenamiento espacial y un conjunto completo de funciones de intersección.

Todo esto proviene del libro Geomtric Tools for Computer Graphics de Schneider y Eberly. El libro es sobresaliente, con una presentación clara de cómo funcionan los algoritmos y cuáles son sus limitaciones. Los autores han hecho que el código esté disponible en línea bajo la licencia de Boost e incluyen la mayoría (todos?) Del libro en línea como un PDF para acompañar a cada módulo de código. Mantienen un sitio web muy útil que está indexado de varias maneras.

No tengo conexión con los autores ni ningún interés monetario. Usé su libro en mi tesis y me gustó mucho que fuera una referencia fácil de usar y una poderosa biblioteca.


Puede probar GeoLib www.geolib.co.uk. No tiene tanta funcionalidad, pero ofrece operaciones booleanas y es muy fácil de usar.