2012-02-19 14 views
35

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.Biblioteca de geometría 2D: alternativa LGPL a CGAL?

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 una biblioteca de este tipo serían:

  • precisión exacta en 2D espacio euclidiano
  • polígonos complejos
  • Polígonos capaz de tener línea curva (arco) segmentos
  • operaciones booleanas sobre los polígonos
  • Compensación de polígono
  • Partición de polígono o triangulación efectiva
  • área y de polígono inscrito algoritmos de ajuste
  • Posiblemente algunas estructuras de clasificación espaciales con rango circular Búsquedas

Con todo, Busco un bien redondeado 2D geometría biblioteca de C++ con una precisión exacta. Preferiblemente con MIT, LGPL de forma flexible o una licencia de bajo costo, única y libre de regalías, por debajo de $ 500.

Boost obtuvo 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 que quede claro, no estoy buscando una biblioteca 2D graphics, solo estructuras de geometría pura.

+2

No resolverá su problema, pero tenga en cuenta que la versión 4.0 de CGAL está bajo GPL y LGPL. – sloriot

+0

@sloriot En realidad no: las piezas que eran LGPL2 ahora son LGPLv3 + y las partes que eran QPL ahora son GPLv3 +: http://www.cgal.org/releases.html#release4.0 Con todo, este cambio de licencia no ayuda el OP. – zvrba

Respuesta

15

Echa 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

3

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

14

Eche un vistazo a Geometric Tools for Computer Graphics.

  • refinado más de una década
  • Increíblemente buena documentación, tanto en tapa dura y extensamente en formato PDF
  • licencia Boost

Se reúne todos los requisitos:

  • Espacio euclidiano 2D 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 se componen 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 Polígono o de triangulación efectiva: Sí, la triangulación de Delaunay y regiones de Voronoi
  • con inscripciones de la zona y del polígono algoritmos de ajuste: Sí
  • Posiblemente algunas estructuras de clasificación espaciales con búsquedas circulares rango: Sí, clasificación espacial y todo un bushel de funciones de intersección.

Todo esto proviene del libro Geomtric Tools for Computer Graphics de Schneider and 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 ninguna 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.

0

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

Cuestiones relacionadas