• 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

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

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

⌊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

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

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.