Articulo de referencia

Recortadora de polígonos general

El General Polygon Clipper ( GPC ) es una biblioteca de software que permite calcular los resultados de las operaciones de recorte en conjuntos de polígonos . Generaliza el prob...

El General Polygon Clipper ( GPC ) es una biblioteca de software que permite calcular los resultados de las operaciones de recorte en conjuntos de polígonos . Generaliza el problema de recorte de gráficos por computadora de polígonos que se intersecan con otros polígonos. La primera versión de GPC fue diseñada e implementada en 1997 por Alan Murta. A partir de agosto de 2009 La versión final de GPC fue la 2.32. La biblioteca principal de GPC está escrita en el lenguaje de programación C , pero también se ha adaptado para funcionar con otros lenguajes.

Disponibilidad

Desde agosto de 2020, GPC ya no es distribuido oficialmente por el autor.

En diciembre de 2021, Rick Brewster, autor de Paint.NET , publicó una copia del código GPC (v2.33) en GitHub bajo la licencia MIT . [ 1 ]

Licencias

Los desarrolladores pueden usar GPC para cualquier propósito sin restricciones de licencia de pago.

Características de GPC

A continuación se resumen las características y operaciones sobre polígonos compatibles con GPC.

GPC puede calcular las siguientes operaciones de recorte: diferencia , intersección , OR exclusivo y unión .

Los polígonos pueden estar formados por múltiples contornos disjuntos. Los vértices de los contornos pueden especificarse como de sentido horario o antihorario. Los contornos pueden ser convexos, cóncavos o autointersecantes. Los contornos pueden estar anidados; es decir, los polígonos pueden tener agujeros.

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

Ejemplos de operaciones GPC en conjuntos de polígonos

Las siguientes cuatro imágenes muestran ejemplos de operaciones de cálculo 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 flechas grandes 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.

Este ejemplo muestra la diferencia entre los dos conjuntos:

Ejemplo de diferencia de GPC
Ejemplo de diferencia de GPC

Este ejemplo muestra la intersección entre los dos conjuntos:

Ejemplo de intersección GPC
Ejemplo de intersección GPC

Este ejemplo muestra la unión entre los dos conjuntos:

Ejemplo de unión GPC
Ejemplo de unión GPC

Este ejemplo muestra la operación OR exclusivo entre los dos conjuntos:

Ejemplo de GPC Exclusive-or
Ejemplo de GPC Exclusive-or

Puertos y enlaces de idioma

El código principal de GPC está escrito en C , pero la comunidad de usuarios de GPC ha aportado varias adaptaciones y enlaces (o envoltorios) para otros lenguajes ( ActionScript 3 , Borland Delphi , C# , GNU Octave , Haxe , Haskell , Java , Lua , Pascal , Perl , Python , VB.Net ). Todas estas adaptaciones y enlaces están disponibles gratuitamente.

Referencias

  1. "GeneralPolygonClipper" . GeneralPolygonClipper en GitHub . Consultado el 22 de diciembre de 2021 .
  • Versión Java mantenida