geometria computacional: polígonoslopes//inf2604/cg2.pdf · o que é um polígono? um polígono é...

11
1 INF2604 - GEOMETRIA COMPUTACIONAL • Prof. Hélio Lopes 9/5/12 Geometria Computacional: Polígonos INF2604 – Geometria Computacional Prof. Hélio Lopes [email protected] sala 408 RDC Polígonos O que é um polígono? Um polígono é uma região fechada do plano limitada por uma coleção de segmentos de reta formando uma curva fechada que não se auto- intersepta. Os segmentos de reta são chamados de arestas e os pontos onde arestas adjacentes se interseptam são chamados de vértices.

Upload: haquynh

Post on 02-Dec-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

1  

INF2604 - GEOMETRIA COMPUTACIONAL • Prof. Hélio Lopes 9/5/12

       

Geometria Computacional: Polígonos

INF2604 – Geometria Computacional

Prof. Hélio Lopes

[email protected]

sala 408 RDC

   

Polígonos

O que é um polígono?

Um polígono é uma região fechada do plano limitada por uma coleção de segmentos de reta

formando uma curva fechada que não se auto-intersepta.

Os segmentos de reta são chamados de arestas e os pontos onde arestas adjacentes se interseptam são

chamados de vértices.

2  

INF2604 - GEOMETRIA COMPUTACIONAL • Prof. Hélio Lopes 9/5/12

   

Polígonos

Qual desses objetos é um polígono?

   

Polígonos

Arestas e vértices Os segmentos de reta são chamados de arestas e os pontos onde arestas adjacentes se interseptam são

chamados de vértices.

O conjunto de vértices e arestas de um polígono P é

chamado de bordo, e é denotado por . !P

3  

INF2604 - GEOMETRIA COMPUTACIONAL • Prof. Hélio Lopes 9/5/12

   

Polígonos

Teorema 1: Curva de Jordan

O bordo de um polígono P divide o plano em duas regiões. Em particular, as componentes de R2/ são a

região limitada do interior do polígono e a região ilimitada do seu exterior.

!P!P

   

Polígonos

Prova simplificada do Teorema 1

Se P é um polígono no plano, primeiramente escolha uma direção fixa no plano que não seja paralela a

nenhuma das arestas de P. Então, qualquer ponto p0 que não esteja em cai em uma das situações:

1.  o raio que começa em p0 na direção fixada atravessa o bordo

de P num número par de vezes: p0 está no exterior.

2.  o raio que começa em p0 na direção fixada atravessa o bordo

de P num número ímpar de vezes: p0p está no interior.

!P

4  

INF2604 - GEOMETRIA COMPUTACIONAL • Prof. Hélio Lopes 9/5/12

   

Polígonos

Prova simplificada do Teorema 1

   

Polígonos

Localização de pontos em relação a polígonos

Desejamos determinar se um ponto p0=(x0,y0) é interior, exterior ou está no bordo de um polígono P = p1, p2,…,pn.

Uma solução para o problema consiste em considerar uma semi-reta L partindo de p0 e determinar seus

pontos de interseção com o bordo de P. Se p0 coincidir

com um desses pontos, então p0 está no bordo. Senão basta contar o número de interseções e ver se esse

número é par ou ímpar. Se for par, o ponto p0 está no exterior, senão p0 está no interior de P.

5  

INF2604 - GEOMETRIA COMPUTACIONAL • Prof. Hélio Lopes 9/5/12

   

Polígonos

Localização de pontos em relação a polígonos

Para obter um algoritmo baseado na descrição

acima, é necessário ter cuidado com alguns

detalhes. Já que L é arbitrária, optamos por

tomar a semi-reta horizontal para simplificar os

cálculos de interseção:

L={(x0,y0)+t(1,0)|t ≥0}

   

Polígonos

Localização de pontos em relação a polígonos

Os pontos de interseção de L com o bordo do polígono são obtidos calculando o ponto de interseção de L com

cada aresta do polígono. Surgem dificuldades quando L contém vértices do polígono.

Quando um ponto de interseção é um vértice, não é

necessariamente verdade que L passe do interior para o exterior!

Problemas existem também quando L contém um lado do polígono!

6  

INF2604 - GEOMETRIA COMPUTACIONAL • Prof. Hélio Lopes 9/5/12

   

Polígonos

Localização de pontos em relação a polígonos

Uma forma prática de solucionar os conflitos

acima é a seguinte: a interseção de uma aresta

pipi+1 com L é contada somente se ela ocorrer

em um ponto que não seja de ordenada mínima

em pipi+1.

   

Polígonos

Localização de pontos em relação a polígonos

0 2 1 0 2 1

Casos Número de Interseções

7  

INF2604 - GEOMETRIA COMPUTACIONAL • Prof. Hélio Lopes 9/5/12

   

Polígonos

Exercício:

Desenvolva um algoritmo para testar se um

ponto p0 está no bordo, no interior ou no

exterior um polígono P com n lados.

Qual é a complexidade desse algoritmo?

   

Polígonos

Algoritmo: Ponto_em_poligono

Dados: p0=(x0,y0); p[i]=(x[i],y[i]),i=1..n; p[n+1] = p[1]

N = 0

para i = 1:n

se y[i] != y[i+1] então

(x,y) = a interseção de p[i]p[i+1] com L

se x = x0 então

retorne que p0 é da fronteira.

senão

se x > x0 e y > min(y[i],y[i+1]) então N = N+1;

senão

se p0 pertence a aresta p[i]p[i+1] então retorne que p0 é da fronteira.

se N é ímpar, retorne que p0 é interior a P, senão retorne que p0 é exterior a P.

8  

INF2604 - GEOMETRIA COMPUTACIONAL • Prof. Hélio Lopes 9/5/12

   

Polígonos

Triangulação de um polígono A triangulação de um polígono P é a decomposição de P em triângulos por um conjunto maximal de

diagonais que não se interseptam.

Uma diagonal de um polígono P é um segmento de

reta que conecta dois vértices de P e que está no interior de P.

Aqui, conjunto maximal significa que nenhuma

outra diagonal pode ser adicionada ao conjunto sem interseptar alguma outra diagonal do conjunto.

   

Polígonos

Triangulação de um polígono

9  

INF2604 - GEOMETRIA COMPUTACIONAL • Prof. Hélio Lopes 9/5/12

   

Polígonos

Lema 1:

Qualquer polígono com mais de três vértices

tem uma diagonal.

   

Polígonos

Teorema 2:

Qualquer polígono possui uma triangulação.

Teorema 3:

Toda triangulação de um polígono P com n

vértices tem n-2 triângulos e n-3 diagonais.

10  

INF2604 - GEOMETRIA COMPUTACIONAL • Prof. Hélio Lopes 9/5/12

   

Polígonos

Orelha

Três vértices consecutivos a,b,c de um polígono

formam uma orelha se ac é uma diagonal do

polígono.

Teorema 4:

Toda triangulação de um polígono P com mais

de três vértices tem pelo menos duas orelhas.

   

Polígonos

Exercício:

Desenvolva um algoritmo para triangular um

polígono.

Qual é a complexidade desse algoritmo?

11  

INF2604 - GEOMETRIA COMPUTACIONAL • Prof. Hélio Lopes 9/5/12

   

dúvidas? Prof. Hélio Lopes [email protected] sala 408 RDC