Title: Computa
1Computação Gráfica Modelagem Geométrica
- Profa. Mercedes Gonzales Márquez
2Tópicos
- Curvas
- Superfícies
- Técnicas principais de Modelagem Geométrica
3Curvas e Superfícies - Introdução
- 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.
4Introdução
- 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.
5Representação de Curvas
- Basicamente existem duas formas principais de
representar curvas - Por um conjunto de pontos
- Por representação analítica.
6Representação de Curvas
- (A) Por Conjunto de Pontos
- A curva é representada por um conjunto finito de
pontos conectados por pequenos segmentos de retas.
7Representação de Curvas
- Para ter uma aparência natural deve-se usar um
conjunto grande de pontos.
A
B
8Representação de Curvas
- (B) Representação Analítica
- Usa 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.
9Representação de Curvas
- 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.
10Representação de Curvas
- 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
11Representação de Curvas
- B.1 Formas paramétricas
- P(t) (x(t), y(t))
- Exemplos
12Representação de Curvas
- B.1. Formas paramétricas
- P(t) (x(t), y(t))
- Exemplos
13Representação de Curvas
- B.2. Formas não-paramétricas
- Nã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 reta y 2x 1 ou x ½ (y 1)
14Representaçã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 c
- 2) Equação de uma reta
- y mx b
- 3) Polinômios
- P(x) anxn an-1xn-1 ... a2x2 a1x1 a0
15Representação de Curvas
- Obtém-se um valor de y para cada valor de x dado.
16Representaçã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 é
17Representaçã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.
18Representação de Curvas
19Representaçã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 ?
20Exercício
- Faça o seguinte exercício.
- 1. Use o programa double.c e substitua o quadrado
por um círculo. Para desenhar o círculo use uma
sequencia de segmentos de linhas que unem pontos
obtidos pela representação explícita do círculo
(y-sqrt(R²-x²)). Use incrementos constantes em
x para obter os pontos extremos de cada segmento.
- 2.Substitua a representação explicíta pela
representação paramêtrica (R cos t, R sen t) ,
com incrementos constantes em t para obter os
pontos extremos de cada segmento. Compare os
resultados visuais.
21Curvas de Bézier
- É 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.
22Curvas de Bézier
B2
B1
B3
B0
Figura 1
23Curvas de Bézier
- A curva paramétrica de Bézier é definida como
- Onde Bi representa cada um dos n1 pontos de
controle considerados e Jn,i (t) são as funções
que combinam a influência de todos os pontos
(blending functions).
- Essas funções são descritas pelos polinômios de
Bernstein como
24Curvas de Bézier
- onde n é o grau dos polinômios e
-
- (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
25Curvas 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.
-
26Curvas 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.
-
27Curvas de Bézier - Algoritmo
- 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/1
s2003/demos/geometry.html - Exercício
- Faça um programa que dado um número n, permita o
ingresso interativo (pelo cliques do mouse) de
n1 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.
28Curvas de Bézier - Problemas
- 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. -
29Superfícies Bézier
- - Generalização da idéia de curva de Bézier.
- Sejam Bij, i0,...,m, j0,...,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,1x0,1 é
Onde Jni e Kmj são os polinômios de Bernstein.
30Superfícies Bézier
31Outras representações de Superfícies
32Representaçã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.
33Representação Octree Exemplo
34Representação Octree Exemplo
35Geometria Sólida Construtiva (CSG)
- 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.
36Geometria Sólida Construtiva (CSG)
37Varredura (Sweeping)
- 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) -
38Varredura (Sweeping)
- - Varredura rotacional (ou superfícies de
revolução) -
39Malha de Polígonos
- - 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
- Opção A
- . Lista contígua das coordenadas de todos os
vértices que compõem cada face. - - Arestas implícitas
- - Faces explícitas
40Malha de Polígonos
- - 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
41Superfície de Revolução - Tarefa
- Material auxiliar para melhor entendimento de
curvas e superfícies de Bézier, veja programa
torus.c, superficies.c e o executável swprj.exe - O programa torus.c 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.