• Nenhum resultado encontrado

Triangulação de polígonos

N/A
N/A
Protected

Academic year: 2022

Share "Triangulação de polígonos"

Copied!
47
0
0

Texto

(1)

Teorema da Galeria de Arte

(2)

Teorema da Galeria de Arte

Quantos guardas são necessários? Quatro?

(3)

Teorema de Chvátal

Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de dispormos no máximo

⌊n/3⌋ guardas neste polígono de modo que cada ponto do polígono seja coberto por pelo menos um guarda.

(4)

Teorema de Chvátal

Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de dispormos no máximo

⌊n/3⌋ guardas neste polígono de modo que cada ponto do polígono seja coberto por pelo menos um guarda.

Primeira prova: Chvátal Prova que veremos: Fisk Ingredientes:

triangulação de polígonos e coloração de grafos

(5)

Triangulação de polígonos

Uma triangulação de P é obtida adicionando-se a P um conjunto maximal de diagonais de P que duas a duas não se cruzam.

(6)

Triangulação de polígonos

Uma triangulação de P é obtida adicionando-se a P um conjunto maximal de diagonais de P que duas a duas não se cruzam.

Triangulação: conjunto de triângulos que cobrem P e que se intersectam apenas em vértices ou diagonais de P .

(7)

Triangulação de polígonos

Uma triangulação de P é obtida adicionando-se a P um conjunto maximal de diagonais de P que duas a duas não se cruzam.

Triangulação: conjunto de triângulos que cobrem P e que se intersectam apenas em vértices ou diagonais de P .

(8)

Coloração de grafos

Um grafo G = (V, E) tem uma k-coloração (ou é k-colorível) se existe uma função c : V ← {1, . . . , k} tal que c(u) 6= c(v) para toda aresta uv em E.

(9)

Coloração de grafos

Um grafo G = (V, E) tem uma k-coloração (ou é k-colorível) se existe uma função c : V ← {1, . . . , k} tal que c(u) 6= c(v) para toda aresta uv em E.

P : polígono T: triangulação de P

GT = (V, E) grafo onde V são os vértices de P e GT = (V, E) uv ∈ E sse uv está em T

(10)

Coloração de grafos

Um grafo G = (V, E) tem uma k-coloração (ou é k-colorível) se existe uma função c : V ← {1, . . . , k} tal que c(u) 6= c(v) para toda aresta uv em E.

P : polígono T: triangulação de P

GT = (V, E) grafo onde V são os vértices de P e GT = (V, E) uv ∈ E sse uv está em T

GT é um grafo outerplanar

(planar com todos os vértices na face externa)

Teorema 2 (Coloração de grafos de triangulação): Seja GT o grafo associado à triangulação T de um polígono P.

Então GT tem uma 3-coloração.

(11)

Coloração de grafos

Teorema 2 (Coloração de grafos de triangulação): Seja GT o grafo associado à triangulação T de um polígono P.

Então GT tem uma 3-coloração.

(12)

Teorema de Chvátal

Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de dispormos no máximo

⌊n/3⌋ guardas neste polígono de modo que cada ponto do polígono seja coberto por pelo menos um guarda.

(13)

Teorema de Chvátal

Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de dispormos no máximo

⌊n/3⌋ guardas neste polígono de modo que cada ponto do polígono seja coberto por pelo menos um guarda.

Prova: Seja P um polígono com n vértices.

Pelo teorema 1, existe uma triangulação T de P.

(14)

Teorema de Chvátal

Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de dispormos no máximo

⌊n/3⌋ guardas neste polígono de modo que cada ponto do polígono seja coberto por pelo menos um guarda.

Prova: Seja P um polígono com n vértices.

Pelo teorema 1, existe uma triangulação T de P. Pelo teorema 2, o grafo GT tem uma 3-coloração.

(15)

Teorema de Chvátal

Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de dispormos no máximo

⌊n/3⌋ guardas neste polígono de modo que cada ponto do polígono seja coberto por pelo menos um guarda.

Prova: Seja P um polígono com n vértices.

Pelo teorema 1, existe uma triangulação T de P. Pelo teorema 2, o grafo GT tem uma 3-coloração.

Se colocarmos um guarda em cada um dos vértices de GT de uma das cores, o polígono P está coberto. Isso porque todo triângulo de T tem um vértice de cada uma das três cores, e os triângulos de T cobrem P.

(16)

Teorema de Chvátal

Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de dispormos no máximo

⌊n/3⌋ guardas neste polígono de modo que cada ponto do polígono seja coberto por pelo menos um guarda.

Prova: Seja P um polígono com n vértices.

Pelo teorema 1, existe uma triangulação T de P. Pelo teorema 2, o grafo GT tem uma 3-coloração.

Se colocarmos um guarda em cada um dos vértices de GT de uma das cores, o polígono P está coberto. Isso porque todo triângulo de T tem um vértice de cada uma das três cores, e os triângulos de T cobrem P.

Uma das cores é usada no máximo ⌊n/3⌋ vezes na coloração.

(17)

Exemplo

(18)

Teoria de triangulação

Lema: Todo polígono tem um vértice estritamente convexo.

(19)

Teoria de triangulação

Lema: Todo polígono tem um vértice estritamente convexo.

Prova: (Feita na aula passada.)

(20)

Teoria de triangulação

Lema (Meister): Todo polígono com pelo menos 4 vértices tem uma diagonal.

(21)

Teoria de triangulação

Lema (Meister): Todo polígono com pelo menos 4 vértices tem uma diagonal.

Prova: (Feita na aula.)

v l

u w

t L

(22)

Teoria de triangulação

Teorema 1 (Triangulação): Todo polígono com n vértices pode ser particionado em n − 2 triângulos através da

inclusão de n − 3 diagonais.

(23)

Teoria de triangulação

Teorema 1 (Triangulação): Todo polígono com n vértices pode ser particionado em n − 2 triângulos através da

inclusão de n − 3 diagonais.

Prova: (Feita na aula.)

d d

d

(24)

Teoria de triangulação

Teorema 1 (Triangulação): Todo polígono com n vértices pode ser particionado em n − 2 triângulos através da

inclusão de n − 3 diagonais.

(25)

Teoria de triangulação

Teorema 1 (Triangulação): Todo polígono com n vértices pode ser particionado em n − 2 triângulos através da

inclusão de n − 3 diagonais.

Lema extra (soma dos ângulos): A soma dos ângulos internos de um polígono de n vértices é (n − 2)π.

(26)

Teoria de triangulação

Teorema 1 (Triangulação): Todo polígono com n vértices pode ser particionado em n − 2 triângulos através da

inclusão de n − 3 diagonais.

Lema extra (soma dos ângulos): A soma dos ângulos internos de um polígono de n vértices é (n − 2)π.

Prova: Conseqüência direta do Teorema da Triangulação.

(27)

Orelhas de polígonos

Três vértices consecutivos u, v, w de um polígono P formam uma orelha de P se uw é uma diagonal de P .

(28)

Orelhas de polígonos

Três vértices consecutivos u, v, w de um polígono P formam uma orelha de P se uw é uma diagonal de P .

Duas orelhas não se sobrepõem se seus interiores são disjuntos.

(29)

Orelhas de polígonos

Três vértices consecutivos u, v, w de um polígono P formam uma orelha de P se uw é uma diagonal de P .

Duas orelhas não se sobrepõem se seus interiores são disjuntos.

(30)

Orelhas de polígonos

Teorema (Meister’s Two Ears Theorem): Todo polígono com pelo menos 4 vértices possui pelo menos duas orelhas.

(31)

Orelhas de polígonos

Teorema (Meister’s Two Ears Theorem): Todo polígono com pelo menos 4 vértices possui pelo menos duas orelhas.

Segue do teorema abaixo.

(32)

Orelhas de polígonos

Teorema (Meister’s Two Ears Theorem): Todo polígono com pelo menos 4 vértices possui pelo menos duas orelhas.

Segue do teorema abaixo.

Teorema 3: Seja P um polígono com pelo menos 4 vértices e T uma triangulação de P. Então pelo menos dois

triangulos de T formam orelhas de P . Prova: (Feita na aula.)

(33)

Coloração do grafo de triangulação

Teorema 2 (Coloração de grafos de triangulação): Seja GT o grafo associado à triangulação T de um polígono P.

Então GT tem uma 3-coloração.

(34)

Coloração do grafo de triangulação

Teorema 2 (Coloração de grafos de triangulação): Seja GT o grafo associado à triangulação T de um polígono P.

Então GT tem uma 3-coloração.

Prova: (Feita na aula.)

(35)

Algoritmos para triangulação

Como encontrar uma diagonal?

(36)

Algoritmos para triangulação

Como encontrar uma diagonal?

Intersecção de segmentos: como decidir se dois segmentos se intersectam ou não?

(37)

Algoritmos para triangulação

Como encontrar uma diagonal?

Intersecção de segmentos: como decidir se dois segmentos se intersectam ou não?

Algoritmo super ingênuo: O(n4)

Algoritmo um pouco menos ingênuo:

O(n2), usando orelhas!

(38)

Algoritmos para triangulação

Como encontrar uma diagonal?

Intersecção de segmentos: como decidir se dois segmentos se intersectam ou não?

Algoritmo super ingênuo: O(n4)

Algoritmo um pouco menos ingênuo:

O(n2), usando orelhas!

Algoritmos mais rápidos:

O(n lg n), veremos em breve...

O(n), complicado... não estudaremos...

O(n lg n), mais simples e rápido na prática

(39)

Representação de ponto

Ponto: vetor de dimensão apropriada

(40)

Representação de ponto

Ponto: vetor de dimensão apropriada Ficar nos inteiros enquanto for possível

(41)

Representação de ponto

Ponto: vetor de dimensão apropriada Ficar nos inteiros enquanto for possível

#define X 0

#define Y 1

#define DIM 2 /* dimensão do espaço */

/* tipo ponto inteiro */

typedef int tPointi[DIM];

/* tipo ponto real */

(42)

Representação de polígono

Polígono: vetor ou lista ligada de pontos

(43)

Representação de polígono

Polígono: vetor ou lista ligada de pontos

Qual das duas opções escolher? Depende...

(44)

Representação de polígono

Polígono: vetor ou lista ligada de pontos

Qual das duas opções escolher? Depende...

Com vetor...

/* número máximo de pontos em um polígono */

#define PMAX 1000

/* tipo polígono de pontos inteiros */

typedef tPointi tPolygoni[PMAX];

/* tipo polígono de pontos reais */

typedef tPointd tPolygond[PMAX];

(45)

Cálculos de área

Triângulo

(46)

Cálculos de área

Triângulo

int Area2 (tPointi a, b, c) {

return a[X]*b[Y]-a[Y]*b[X]+a[Y]*c[X]

-a[X]*c[Y]+b[X]*c[Y]-c[X]*b[Y];

}

(47)

Cálculos de área

Triângulo

int Area2 (tPointi a, b, c) {

return a[X]*b[Y]-a[Y]*b[X]+a[Y]*c[X]

-a[X]*c[Y]+b[X]*c[Y]-c[X]*b[Y];

}

Com menos multiplicações e em pseudocódigo:

Area2(a, b, c)

1 devolva (a[X] − c[X]) ∗ (b[Y ] − c[Y ])−

Referências

Documentos relacionados

⌊n/3⌋ guardas neste polígono de modo que cada ponto do polígono seja coberto por pelo menos um guarda.... Teorema

B sala 201, DENOMINADO SIMPLESMENTE CONVENENTE neste ato representado pelo seu Diretor Presidente Pedro Machado Barbosa, brasileiro, casado, servidor público, portador da RG

a) A quantidade de vértices de um polígono é necessariamente igual a sua quantidade de lados. A soma dos comprimentos dos lados de um polígono é chamada de perímetro. c)

Diante disso, determine a quantidade de ovos ( x ) encontrada neste ninho, sabendo que essa quantidade é um número primo.. Com base nesses dados, determine o valor da

A iluminação é calculada para cada vértice do polígono; A iluminação de cada ponto na superfície do polígono é determinada por interpolação bilinear tomando como.

resolvido utilizando duas variáveis vetoriais: uma para armazenar os nomes (tipo literal) e outra para armazenar as idades (tipo inteiro) de forma que a i-ésima posição do vetor

Travel Guide Porto 02 02 04 04 05 06 06 08 08 09 10 11 Visão geral Portugal Regras em viagem Saúde Chamadas telefónicas e internet Passeando Porto 10 atrações imperdíveis Compras

– If: polígono é opaco e cobre o pixel, inserir na lista, removendo todos os polígonos mais distantes.. – If: polígono é transparente ou cobre apenas parte do pixel, inserir