O que são polígonos degenerados? Como se verifica se um determinado par de polígonos é degenerado ou não?
9
O que são polígonos degenerados? Como se verifica se um determinado par de polígonos é degenerado ou não?
Respostas:
Um polígono é degenerado se alguns de seus vértices se encontrarem. por exemplo, o triângulo (0,0), (0,1), (0,0) é degenerado. Tem 3 lados e 3 vértices, mas dois deles se repetem. É possível repetir um vértice várias vezes (por exemplo (0,0), (0,0), (0,0) é outro triângulo degenerado). Por definição, verificar se um polígono é degenerado ou não é fácil.
Mas quais são os usos dos polígonos degenerados? Uma aplicação da aceleração gráfica (desenho 3D) é a seguinte:
No desenho 3D, as GPUs normalmente usam triangulação para renderizar imagens. A razão (simples) para o uso de triângulos é porque eles são objetos 2D possíveis mais simples, portanto não precisam de muito hardware.
Se queremos desenhar uma imagem 3D complexa, por essa limitação da GPU, temos que decompô-la em vários triângulos. Mas se chamarmos a GPU para renderizar cada triângulo separadamente, seria muito lento (devido ao número de chamadas). Portanto, a faixa triangular é usada para reduzir o número de chamadas para a GPU. Uma boa explicação sobre as tiras triangulares pode ser encontrada em Documentação da Microsoft: Tiras triangulares , também você pode ver o wiki de: Tira triangular .
Mas o problema surge quando queremos desenhar dois objetos separados em uma faixa. Neste caso, triângulos degenerados ajudam. A GPU pode detectar os triângulos degenerados e pular seus desenhos. Assim, podemos conectar duas tiras separadas com um triângulo degenerado.
fonte
Um polígono degenerado é aquele que tem área zero.
fonte
Como outros observaram, isso depende. De um modo geral, um polígono não é degenerado se não tiver pontos anômalos, mas isso apenas leva o problema de volta um passo; o que é "anômalo"?
A resposta real é que um polígono é degenerado se violar a especificação. A resposta um pouco grosseira é que um polígono é degenerado se for um caso de borda que seu algoritmo não pode lidar.
Aqui está um exemplo do mundo dos SIG. A especificação de recursos simples do OGC possui uma definição muito cuidadosa do que torna um polígono "válido". Citando a Seção 6.1.11.1:
fonte