Cortadora poligonal general


El Polígono Clipper general ( GPC ) es una biblioteca de software que proporciona para el cálculo de los resultados de las operaciones de recorte sobre conjuntos de polígonos . Generaliza el problema del recorte de gráficos por computadora de la intersección de polígonos con polígonos. La primera versión de GPC fue diseñada e implementada en 1997 por Alan Murta. En agosto de 2009, la versión actual de GPC era la 2.32. La biblioteca principal de GPC está escrita en el lenguaje de programación C, pero la biblioteca también se ha adaptado para trabajar con varios otros lenguajes.

GPC es gratuito para uso no comercial y su autor fomenta el uso gratuito de GPC para respaldar la investigación, la enseñanza y las aplicaciones académicas. Para utilizar GPC como soporte de aplicaciones comerciales, se requiere una licencia.

Los polígonos pueden comprender múltiples contornos disjuntos. Los vértices de contorno se pueden especificar en sentido horario o antihorario. Los contornos pueden ser convexos, cóncavos o intersecantes. Los contornos pueden estar anidados. En otras palabras, los polígonos pueden tener huecos.

La salida de la operación de recorte de GPC es un conjunto de contornos poligonales o tristrips. Los agujeros y los contornos externos se diferencian en la salida de GPC. Los bordes coincidentes y las regiones degeneradas se manejan correctamente.

Las siguientes cuatro imágenes muestran ejemplos de operaciones de computación GPC entre dos conjuntos de polígonos. El primer conjunto de polígonos comprende los contornos del Reino Unido e Irlanda. El segundo conjunto de polígonos comprende las cuatro grandes flechas que apuntan hacia adentro. En cada ejemplo, las áreas resultantes de la operación GPC entre los dos conjuntos de polígonos se representan en color.

El código principal de GPC está escrito en C , pero la comunidad de usuarios de GPC ha contribuido con una serie de puertos y enlaces (o envoltorios) para varios otros lenguajes ( Action Script 3 , Borland Delphi , C # , GNU Octave , Haxe , Haskell , Java , Lua , Pascal , Perl , Python , VB.Net ). Todos estos puertos y enlaces están disponibles gratuitamente.