Cursos / Jogos Digitais / Matemática Aplicada a jogos / Aula

arrow_back Aula 03 - Envolvendo Objetos: Polígonos, Fecho Convexo e Colisões

2.4 Posições relativas: dentro ou fora?

Vimos que um polígono é definido como a região interna de uma linha poligonal. Para o uso de polígonos como representação matemática de objetos virtuais, é importante saber detectar quando um ponto está no interior de um polígono ou no seu exterior.

O algoritmo mais utilizado para esse tipo de detecção consiste em definir uma semirreta a partir do ponto pesquisado e contar quantas interseções essa semirreta tem com os lados do polígono. Por simplicidade costuma-se tomar uma semirreta horizontal partindo do ponto. Se o número de interseções da semirreta com os lados do polígono for par, o ponto está fora do polígono. Se for ímpar, o ponto está em seu interior.

Isso pode ser ilustrado pela Figura 26.

Semirreta partindo do ponto Q interseta o polígono três vezes, pois $Q$ está no interior do polígono.

Essa abordagem, no entanto, traz consigo alguns casos particulares nos quais é possível identificar alguns problemas.

Se, por exemplo, a semirreta interceptar um dos lados ou um dos vértices do polígono, um número par ou ímpar de interseções não equivale mais à posição do ponto relativa ao polígono. As situações problemáticas podem ser observadas na Figura 27.

Casos críticos para o algoritmo de verificação da posição do ponto com relação ao polígono

Vale lembrar também que, de maneira geral, consideramos os pontos pertencentes à linha poligonal como interiores ao polígono. Sendo assim, na Figura 27-c podemos ver que teríamos uma semirreta partindo de um ponto interior que possui duas interseções com os lados do polígono. Portanto seria considerado como ponto exterior.

Versão 5.3 - Todos os Direitos reservados