43
Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Embed Size (px)

Citation preview

Page 1: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Computação Gráfica – Modelagem Geométrica

Profa. Mercedes Gonzales Márquez

Page 2: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Tópicos

Curvas Superfícies Técnicas principais de Modelagem

Geométrica

Page 3: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Estuda-se dentro do escopo da Modelagem Geométrica. Curvas são a base, tanto da geração de formas simples, como círculos e elipses, quanto na criação de projetos complexos como automóveis, navios, aeronaves ou até mesmo faces e corpos humanos.

Curvas e Superfícies - Introdução

Page 4: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Curvas e superfícies desempenham um papel importante em várias áreas, como criação de objetos e visualização de fenômenos científicos.

Representar uma curva como uma sucessão de linhas retas não é suficiente. O desafio maior é definir uma curva que passe por um determinado conjunto de pontos.

Introdução

Page 5: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Basicamente existem duas formas principais de representar curvas:

(A) Por um conjunto de pontos;(B) Por representação analítica.

Representação de Curvas

Page 6: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

(A) Por Conjunto de Pontos– A curva é representada por um conjunto finito de

pontos conectados por pequenos segmentos de retas.

Representação de Curvas

Page 7: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Para ter uma aparência “natural” deve-se usar um conjunto grande de pontos.

Representação de Curvas

A

B

Page 8: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Representação de Curvas

(B) Representação AnalíticaUsa uma ou mais equações. Vantagens:– Maior precisão;– Mais compacta;– Não requer área de armazenamento;– Facilidade de calcular novos pontos (caso necessário);– Facilidade de cálculo de propriedades da curva como

área, inclinação, curvatura;– Maior simplicidade para ser redesenhada quando

sujeita a transformações como escala, rotação, projeções, etc.

Page 9: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

A representação analítica de curvas pode usar ou não parâmetros, sendo classificados como B.1. paramétricas B.2. não-paramétricas.

As formas não-paramétricas podem ser, ainda, B.2.1. explícitas B.2.2. implícitas.

Representação de Curvas

Page 10: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

B.1 Formas paramétricas– As coordenadas são dadas em termos de um (conjunto)

de parâmetros. Usa-se um parâmetro (t, , etc.) para definir as coordenadas dos pontos da curva.

P(t) = (x(t), y(t))Exemplos:

Representação de Curvas

Page 11: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

B.1 Formas paramétricasP(t) = (x(t), y(t))

Exemplos:

Representação de Curvas

Page 12: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

B.1. Formas paramétricasP(t) = (x(t), y(t))

Exemplos:

Representação de Curvas

Page 13: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Representação de Curvas

B.2. Formas não-paramétricasNão há parâmetros e uma coordenada da curva é dada em função da outra, ou seja

y = f(x) ou x = f(y)–Exemplos:1) Equação de um semi-círculo de raio 2

2) Equação de uma retay = 2x – 1 ou x = ½ (y + 1)

2222 22 yxouxy

Page 14: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Representação de Curvas

B.2.1 Forma não-paramétrica explícita : É dada por uma equação do tipo y = f(x), ou seja uma das coordenadas é explicitamente dada em função das outras.– Exemplos:1) Equação genérica explícita de uma parábola:

y = ax2 + bx + c2) Equação de uma reta

y = mx + b3) Polinômios:

P(x) = anxn + an-1xn-1 + ... + a2x2 + a1x1 + a0

Page 15: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Representação de Curvas

Obtém-se um valor de y para cada valor de x dado.

Page 16: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Representação de Curvas

B.2.2. A representação implícitas não tem essa limitação. Nela as coordenadas são relacionadas por uma função. A sua forma é

Page 17: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Representação de Curvas

Exemplo: seções cônicas.

ax2 + bxy + cy2 + dx + ey + f = 0 Essa expressão representa a variedade de

curvas planas denominadas seções cônicas. Essas curvas (cinco) são obtidas pelo corte de um cone por um plano, resultando em: círculo, elipse, parábola, hipérbole, reta.

Page 18: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Representação de Curvas

Page 19: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Representação de Curvas

Cônica Forma Paramétrica Forma Implícita

Elipse x = a cos y = b sen

Parábola x = at2, y = 2at y2 – 4ax = 0

Hipérbole x = a cosh y = b senh

012

2

2

2

b

y

a

x

012

2

2

2

b

y

a

x

Page 20: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Exercício

Veja programas circle.cpp, parabola.cpp, helix.cpp

Page 21: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

É uma técnica de aproximação de curvas. Uma curva de Bézier pode ser gerada por 3, 4, até n + 1

pontos de controle (ajuste para um polinômio de grau n). Geralmente utiliza-se quatro pontos de controle (forma

cúbica). A curva passa pelo primeiro e pelo último ponto de

controle.

Curvas de Bézier

Page 22: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Curvas de Bézier

B0B3

B1

B2

Figura 1

Page 23: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Curvas de Bézier

Onde Bi representa cada um dos n+1 pontos de controle considerados e Jn,i (t) são as funções que combinam a influência de todos os pontos (blending functions).

10),()( ,0

ttJBtP in

n

ii

A curva paramétrica de Bézier é definida como:

Essas funções são descritas pelos polinômios de Bernstein como:

iniin tt

i

ntJ

)1()(,

Page 24: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Curvas de Bézier

(i = 0, 1, ..., n) são os coeficientes binomiais. Essas funções Jn,i (t) devem satisfazer as condições: Jn,i

(t) 0 para todo i entre 0 e 1, isto é 0 ≤ t ≤ 1 e também:

)!(!

!

ini

n

i

n

onde n é o grau dos polinômios e:

10,1)(0

,

ttJn

iin

Page 25: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Curvas de Bézier

Expressões que definem as curvas de Bézier:– Para três pontos de controle polinômios com

grau 2.

P(t) = (1 – t)2 B0 + 2t (1 – t) B1 + t2B2,

onde t inicialmente é 0.

2

1

02

001

022

121

]1[)(

B

B

B

tttP

Page 26: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Curvas de Bézier

Expressões que definem as curvas de Bézier:– Para quatro pontos de controle polinômios com

grau 3.

P(t) = (1 – t)3 B0 + 3t (1 – t)2 B1 + 3t2 (1 – t)B2 + t3B3,

onde t inicialmente é 0.

3

2

1

0

23

0001

0033

3363

1331

1)(

B

B

B

B

ttttP

Page 27: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Material auxiliar para melhor entendimento de curvas e superfícies de Bézier, veja applets java em http://www.dca.fee.unicamp.br/courses/EA978/1s2003/demos/geometry.html

Exercício:Faça um programa que dado um número n, permita o ingresso interativo (pelo cliques do mouse) de n+1 pontos de controle e construa a curva de Bézier correspondente. Preste atenção que as coordenadas da cena diferem ligeiramente das coordenadas da tela onde os cliques serão feitos.

Curvas de Bézier - Algoritmo

Page 28: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

1. Falta de controle local : Uma alteração em um ponto no polígono de Bézier acarreta alterações em toda a curva de Bézier. Indesejável quando desejamos fazer ajustes finos.

2. O grau do polinômio cresce com o número de pontos de controle do polígono de controle.

Curvas de Bézier - Problemas

Page 29: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

- Generalização da idéia de curva de Bézier. - Sejam Bij, i=0,...,m, j=0,...,n, um conjunto de pontos no R3

de tal forma que sua projeção no plano x0y seja formada pelos vértices de mn retângulos de mesmas dimensões. A superfície de Bézier definida no domínio [0,1]x[0,1] é

Superfícies Bézier

)()(),(00

vKuJBvuQ mjni

m

jij

n

i

Onde Jni e Kmj são os polinômios de Bernstein.

Page 30: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Superfícies Bézier

Page 31: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Outras representações de Superfícies

Page 32: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Representação Octree: (estrutura de árvore)

Envolve o objeto por um cubo que em seguida é subdividido em 8 cubos menores. Cada um deles pode ser : Cheio, vazio ou cheio-vazio. Os nós cheios ou vazios são terminais, enquanto os cheio-vazios não são.

Page 33: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Representação Octree: Exemplo

Page 34: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Representação Octree: Exemplo

Page 35: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Consiste em construir um objeto a partir da combinação operatória (união, interseção e diferença) de dois ou mas sólidos.

Geometria Sólida Construtiva (CSG)

Page 36: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Geometria Sólida Construtiva (CSG)

Page 37: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Uma superfície é descrita quando uma curva C1 (curva geratriz) é deslocada no espaço, ao longo de uma trajetória dada por uma outra curva C2 (caminho o diretriz).

- Varredura translacional (Extrusão ou superfícies geradas por deslocamento)

Varredura (Sweeping)

Page 38: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

– - Varredura rotacional (ou superfícies de revolução)

Varredura (Sweeping)

Page 39: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

– - Varredura rotacional (ou superfícies de revolução)

Varredura (Sweeping)

Page 40: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

- Coleções de polígonos (ou faces) que, juntos, formam a “pele” ou “casca” do objeto

– • Forma rápida e prática para representar objetos– Estrutura de Dados– . Lista contígua das coordenadas de todos os vértices

que compõem cada face.- Arestas implícitas

- Faces explícitas

Malha de Polígonos

Page 41: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

- Coleções de polígonos (ou faces) que, juntos, formam a “pele” ou “casca” do objeto

– • Forma rápida e prática para representar objetos

Malha de Polígonos

Page 42: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Superfície de Revolução - Tarefa

Material auxiliar para melhor entendimento de curvas e superfícies, veja programa torus.c, superficies.c e o executável swprj.exe

O programa torus.c (disponível no site da disciplina) desenha a superfície chamada torus.

O executável swprj.exe permite desenhar uma curva geratriz que dará origem a uma superfície de revolução

O programa superfícies.c permite desenhar uma curva de Bézier como curva geratriz e a partir dela obter uma superfície de revolução.

Page 43: Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

Superfície de Revolução - Tarefa

Compare o programa torus.cpp da pasta Code com o programa torus.c disponibilizado no site da disciplina. Para consulta de comandos novos use o livro RedBook disponibilizado também no site da disciplina.

Desenhar um cilindro como superfície de revolução usando um segmento de reta como curva geratriz.