¿Qué son los polígonos degenerados?


9

¿Qué son los polígonos degenerados? ¿Cómo se comprueba si un par de polígonos dado está degenerado o no?


2
¿Contexto? No creo que "polígono degenerado" tenga una definición estándar.
Peter Shor

Si tengo dos polígonos convexos, ¿cómo sería degenerar? si comparten un lado común o si se superponen? o ninguno? ¿o ambos?
Alice

1
Supongo que estos son polígonos en los que dos vértices adyacentes son iguales.
Yuval Filmus

Respuestas:


9

Un polígono se degenera si algunos de sus vértices se encuentran entre sí. por ejemplo, el triángulo (0,0), (0,1), (0,0) está degenerado. Tiene 3 lados y 3 vértices, pero dos de los vértices se repiten. Es posible repetir un vértice varias veces (por ejemplo (0,0), (0,0), (0,0) es otro triángulo degenerado). Por definición, verificar si un polígono está degenerado o no es fácil.

¿Pero cuáles son los usos de los polígonos degenerados? Una aplicación de la aceleración gráfica (dibujo 3D) es la siguiente:

En el dibujo 3D, las GPU normalmente usan triangulación para renderizar imágenes. La razón (simple) para usar triángulos es porque son los objetos 2D más simples posibles, por lo que no necesitan mucho hardware.

Si queremos dibujar una imagen 3D compleja, por esta limitación de GPU, tenemos que descomponerla en múltiples triángulos. Pero si llamamos a la GPU para representar cada triángulo por separado, sería muy lento (debido a la cantidad de llamadas). Entonces, la tira triangular se usa para reducir la cantidad de llamadas a la GPU. Puede encontrar una buena explicación de las tiras triangulares en la documentación de Microsoft: Tiras triangulares , también puede ver la wiki de: Tiras triangulares .

Pero el problema surge cuando queremos dibujar dos objetos separados en una tira. En este caso, los triángulos degenerados ayudan. La GPU puede detectar los triángulos degenerados y omitir su dibujo. Entonces podemos conectar dos tiras separadas con un triángulo degenerado.

En general, si tenemos componentes diferentes, de modo que ya tenemos sus correspondientes tiras triangulares, podemos dibujarlos todos con solo una llamada a la GPU. Esto causa un uso adicional de memoria, pero es una compensación entre el número de llamadas a la GPU para renderizar y la sobrecarga de usar un triángulo degenerado adicional.n


1
¿Podría aclarar si degenerar significa solo vértices iguales adyacentes , o si la definición incluye vértices iguales no adyacentes? (Una pregunta sincera, no solo tratando de mejorar la respuesta)
Erik Hermansen

0

Un polígono degenerado es uno que tiene área cero.


Si la respuesta del usuario742 es correcta, entonces esto no sería cierto. Toma un cuadrado. Si dos y solo dos vértices son iguales, entonces es un triángulo y, por lo tanto, el área es> 0.
HankCa

y lo aclaraste bien. Un triángulo no es degenerado.
Gabriel Rohweder

0

Como otros han notado, depende. En términos generales, un polígono no está degenerado si no tiene puntos anómalos, pero esto solo hace retroceder el problema un paso; ¿Qué es "anómalo"?

La respuesta real es que un polígono se degenera si viola la especificación. La respuesta ligeramente grosera es que un polígono se degenera si es un caso límite que su algoritmo no puede manejar.

Aquí hay un ejemplo del mundo de los SIG. La especificación de características simples de OGC tiene una definición muy cuidadosa de lo que hace que un polígono sea "válido". Citando de la Sección 6.1.11.1:

Las afirmaciones para los polígonos (las reglas que definen los polígonos válidos) son las siguientes:

a) Los polígonos están topológicamente cerrados;

b) El límite de un polígono consiste en un conjunto de anillos lineales que conforman sus límites exteriores e interiores;

c) No hay dos anillos en la cruz del límite y los anillos en el límite de un polígono pueden cruzarse en un punto, pero solo como una tangente, por ejemplo, ;

PPolygon,c1,c2P.Boundary,c1c2,p,qPoint,p,qc1,pq,[pc2][δ>0|[|pq|<δ] [qc2]]

Nota: Esta última condición dice que en un punto común a las dos curvas, los puntos cercanos no pueden ser comunes. Esto obliga a cada punto común a ser un punto de tangencia.

d) Un polígono puede no tener líneas de corte, puntas o perforaciones, por ejemplo: ;PPolygon,P=P.Interior.Closure

e) El interior de cada Polígono es un conjunto de puntos conectados;

f) El exterior de un polígono con 1 o más agujeros no está conectado. Cada hoyo define un componente conectado del exterior.

En las afirmaciones anteriores, interior, cierre y exterior tienen las definiciones topológicas estándar. La combinación de (a) y (c) hace que un polígono sea un conjunto de puntos cerrados regular.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.