Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste...

24
Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Transcript of Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste...

Page 1: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Operações em uma subdivisão planar 2D

Rodrigo de Toledo(CG1, UFRJ, 2010.2)

Esta versão deste ppt ainda não é a definitiva!

Page 2: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Plano de hoje

• Feedback do trabalho passado• Passar o próximo trabalho• Formato de arquivo para descrição de malha (ply?)• Viewport 2D• Seleção de:

– Ponto– Aresta– Triângulo– Polígono

• Outras formas de seleção:– por cor– por subdivisão espacial

Page 3: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

What Went Well? (34)• Exercícios em aula (6)• Trabalhos interessantes (20)• Pontualidade (2)• Desenvolvimento ágil dos trabalhos (5)

– duplas etc...• Utilização de biblioteca já conhecida (Allegro)• Interação do prof.-turma (16)

– enche a turma devida a transparência• Material na internet (3)• Esquema de 8 pontos +2 extras (4)• A sequencia do conteúdo (14)• Aulas dinamicas (10)• Curiosidades fora do conteudo da materia (3)

– agile, petroleo, matrix• Decisoes tomadas com a turma (3)• Preocupacao do prof. com o ensino (2)• As aulas de laboratorio (6)• Monitor auxiliando o trabalho (8)

Page 4: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

What Went Well? Rodrigo

• Os ppts estão a 80% do que eu queria• Bastante alunos• Vários interessados• Trabalhos de proc img ficaram muito bons

– menor nota foi 6.3

• Alguns feedbacks individuais positivos• A participação de alunos na criação do curso• O monitor bastante prestativo• Infra da UFRJ está dando conta do recado

– labs, projetor, salas, secretaria, minha sala...

• O horário é bom!

Page 5: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

What can be improved?• Falta lista de exercicio (17)

– para preparar para a prova• Usar biblioteca OpenGL (4)• Marcar prova depois do feriado (2)• A prova pode ser mais fácil • Exercicios para programar no papel (12)• Fazer maior uso do lab (12)• Cronograma deveria ser antecipado

– datas de trabalho / prova• Evitar coincidir provas• Não alternar com outro professor (4)• Atualizar o site mais rápido (2)• Deixar mais claro que pode ser feito em outras linguagens• Monitoria de programação• Mais teoria (2)• Bibliografia com indicações por assunto (no próprio slide)• Apresentação dos trabalhos

– desconfortável por pessoas diferentes corrigirem ((deixar claro a troca dos corretores))– tempo curto (4)

• Aumentar peso do trabalho na nota– como está agora (12)– aumentar o peso do trabalho (15)– o contrário (0)

• Trabalho de modelagem também (7)– talvez uma aula extra....

Page 6: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

What can be improved? Rodrigo

• Preparação das aulas com mais antecedencia• Madrugadas em excesso• Mais reunioes com monitor• Dava para ser um pouco mais rápido• É provavel que não de para passar todo o conteudo

previsto• Não marquei data de prova com antecedencia• Na segunda é corrido (aula no H até as 10h)• Feriados + semana cientifica atrapalham• Um pouco de insegurança por ser a primeira vez• não sei lidar com alunos que dormem, se distraem e

saem

Page 7: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Trabalho 2Faça um programa que leia um arquivo de entrada contendo a descrição de uma subdivisão planar do espaço (malha de triângulos 2D). O programa deve:Desenhar na tela essa malha (sugerimos o uso do Allegro, que tem comandos para desenho de linha). Permitir que o usuário selecione um vértice ou uma aresta ou um triângulo. Esse input não é uma variação, todos os trabalhos devem permitir as 3 seleções.Uma vez selecionado, mostrar a vizinhança do elemento selecionado segundo a variação de trabalho da dupla. Variações de output:

oMostar os vértices vizinhos:oMostrar as arestas vizinhas: oMostrar os triângulos (polígonos) vizinhos:

Formato de arquivo de entrada:oA ser definido pelo monitor (até segunda que vem).oProvavelmente uma lista de vértices seguida de uma lista de polígonos.

Mostrar na tela o resultado destacado.Exemplos de algo mais:

oInterface do sistema de seleção caprichado.oForma de destacar o resultado.oZoom e/ou pan.oPermitir malhas de polígonos (não apenas de triângulos).oSistema topológico sofisticado (e bem implementado).oImplementar as demais variações.

Page 8: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Formato de arquivo

Page 9: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Viewport 2D

Exemplo:(em coordenadas de mundo)Xmin = -500Ymin = 300Xmax = 400Ymax = 800

Exemplo:(em pixels)Umin = 0Vmin = 0Umax = 300Vmax = 200

Como transformar?Manter aspect ratio?

Page 10: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Viewport 2D

Page 11: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Viewport 2D

Page 12: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Ponto

• Percorrer sequencialmente os pontos comparando a localização.

• Como tratar precisão?– Margem (threshold)– Distância euclidiana

?P

Page 13: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Aresta

• P pertence a reta?

• P está entre V1 e V2?

?V1

V2

P

Page 14: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Triângulo

• Produto Vetorial de 2

• (v1xv2) = {x1y2 – y1x2}• v1xv2 > 0, se e só se v2 está “a esquerda” de v1

?

V1

V2

V3

? PP

Page 15: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Ponto no interior de um triângulo (CW ou CCW)

V1

V2

V3

Pi

Pe

a12

a23

a31

)(

)(

)(

3313

2232

1121

VPat

VPat

VPat

N P é interior se t1, t2 e t3 tem o mesmo sentido,ou seja:

0

0

31

21

tt

tt

Page 16: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Polígono convexo

?V1

V2

V3

? PP

V4

V5

Pergunta se P está do mesmo lado de todas as arestas...

Page 17: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Polígono côncavo

?

V1

V3

P

V4

V6

V2

V5

?P

Page 18: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Polígono côncavo

• Achar fecho convexo• Verificar se OK para fecho convexo

– senão está fora– Considerar área que não pertence ao fecho convexo

como polígono CW (sentido horário). Verificar se dentro deste polígono

• senão está dentro

– Atenção:• pode ser mais de um polígono...• pode ser que o polígono também seja côncavo, tendo de

usar recursão nesse caso

Page 19: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Regra da paridade(even-odd parity rule)

•Um ponto é considerado dentro de um polígono se uma raio vindo do infinito cruzar um número par de bordas!

A B

Cuidado!

Page 20: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Como descobrir qual triângulo?

• Existe alguma outra maneira do que percorrer todos os triângulos?

Page 21: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Rasterização de cor

• Truque usado em 3D

1. Chamar a função que renderiza com cores no “back-buffer”

2. Leia o pixel do back-buffer correspondente a posição do mouse-click.

3. Processe a cor para descobrir qual o item que foi clicado.

Obs: Cuidado para que não apareça ao usuário o esquema de cores.

Page 22: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

Subdivisão do espaço• Em 2D, o mais comum é quadtree

– dos vértices?– das arestas?– dos triângulos?

• Em 3D se chama octree• Existem outras subdivisões mais inteligentes...

Page 23: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

kD-tree

Em 3D

Page 24: Operações em uma subdivisão planar 2D Rodrigo de Toledo (CG1, UFRJ, 2010.2) Esta versão deste ppt ainda não é a definitiva!

BSP (Binary Space Partition)