COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica...
Transcript of COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica...
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
COMPUTAÇÃO GRÁFICAModelagem GeométricaCurvas e Superfícies
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Modelagem
Manual(linha programação)
Interativa(programação visual)
Escaneada
Maya Maya ((httphttp://www.alias.com)://www.alias.com)3ds Max (3ds Max (httphttp://www.://www.autodeskautodesk.com).com)Blender Blender ((httphttp://www.://www.blenderblender..orgorg/)/)PovPov-Ray (-Ray (httphttp://www.://www.povraypovray..orgorg/)/)Sketchup Sketchup ((httphttp://www.://www.sketchupsketchup.com/).com/)
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Curvas e superfícies
•• Desempenham papel importanteDesempenham papel importante
•• Forma Formaçãoção de objetos complexos de objetos complexos
•• Analiticamente representada por um Analiticamente representada por umpolinpolinômioômio
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Representação de curvas esuperfícies•• Representação explícita Representação explícitaFornece o valor da variável dependente em função daFornece o valor da variável dependente em função davariável independentevariável independente
y = f(x) y = f(x)Para o caso de uma reta, esta representação não é válidaPara o caso de uma reta, esta representação não é válidapara uma linha verticalpara uma linha vertical
y = y = mx mx + h+ hUm círculo requer 2 equações nesta representaçãoUm círculo requer 2 equações nesta representação
22xry !=
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Representação de curvas esuperfícies•• Representação explícita Representação explícitaEm 3 dimensões, o desenho da curva requer 2 equaçõesEm 3 dimensões, o desenho da curva requer 2 equações
y = f(x)y = f(x)z = g(x)z = g(x)
Uma superfície requerUma superfície requer duas variáveis independentes naduas variáveis independentes naformaforma
z = f(x,y)z = f(x,y)
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Representação de curvas esuperfícies•• Representação implícita Representação implícitaEm 2 dimensões, uma curva é representada porEm 2 dimensões, uma curva é representada por
f(x,y) = 0f(x,y) = 0Para o caso de uma retaPara o caso de uma reta
ax ax ++by by + c = 0+ c = 0Um círculo possui a representaçãoUm círculo possui a representação
A equaA equaçãoção nesta representação pode ter mais de uma nesta representação pode ter mais de umasolução.solução.
0ryx222=!+
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Representação de curvas esuperfícies•• Representação implícita Representação implícitaCurvas em 3 dimensões não são facilmente representadas.Curvas em 3 dimensões não são facilmente representadas.Pode-se pensar na interseção entre as duas superfíciesPode-se pensar na interseção entre as duas superfícies
f(x,y,z) = 0f(x,y,z) = 0g(x,y,z) = 0g(x,y,z) = 0
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Representação de curvas esuperfícies•• Representação paramétrica Representação paramétricaExpressa cada variável espacial em termos de umaExpressa cada variável espacial em termos de umavariável independente (ou duas, no caso de superfícies)variável independente (ou duas, no caso de superfícies)
x = x(u) ou x = x(u,v)x = x(u) ou x = x(u,v)y = y(u) ou y = y(u,v)y = y(u) ou y = y(u,v)z = z(u) ou z = z(u,v)z = z(u) ou z = z(u,v)
Um ponto em uma curva pode ser escrito na formaUm ponto em uma curva pode ser escrito na formap(u) = [x(u) y(u) z(u)]p(u) = [x(u) y(u) z(u)]
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Curvas paramétricas polinomiais
•• PolinPolinômiosômios de ordem 3 de ordem 3•• Representa Representaçãoção paramétrica paramétrica
x(u)=ax(u)=axxuu33 + b + bxxuu22 + + ccxxu u + + ddxx
y(u)=ay(u)=ayyuu33 + b + byyuu22 + + ccyyu u + + ddyy
z(u)=az(u)=azzuu33 + b + bzzuu22 + + cczzu u + d+ dzz
Ou escrito na forma matricialOu escrito na forma matricial
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Curvas paramétricas polinomiais
•• Exemplos de curvas: BExemplos de curvas: Bézierézier, , HermiteHermite,,SplinesSplines, NURBS, NURBS
[x(u) [x(u) y(u) y(u) z(u)] z(u)] = [u= [u33 u u22 u 1] u 1] aaxx a ay y aazz
bbxx b by y bbzz
ccxx ccy y cczz
ddx x ddy y ddzz
P(u) = T P(u) = T .. C C
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Curvas paramétricas polinomiais
•• Algumas curvas não podem ser descritas Algumas curvas não podem ser descritaspor uma única expressão analíticapor uma única expressão analítica•• Utilizam-se descrições baseadas na união Utilizam-se descrições baseadas na uniãode diversas curvasde diversas curvas•• A curva resultante da união deve ter A curva resultante da união deve tercurvatura contínuacurvatura contínua
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Interpolação x AproximaçãoÉ natural querermos modelar uma curva suave que passaÉ natural querermos modelar uma curva suave que passa
por um conjunto de pontos dadospor um conjunto de pontos dadosSe a curva desejada é polinomial, chamamos tal curva deSe a curva desejada é polinomial, chamamos tal curva de
interpolação polinomial interpolação polinomial lagrangeanalagrangeanaEntretanto, o resultado nem sempre é o esperadoEntretanto, o resultado nem sempre é o esperado
(oscilações)(oscilações)É mais comum querermos curvas que É mais comum querermos curvas que ““passem pertopassem perto”” dos dos
pontos dados, isto é, pontos dados, isto é, aproximaçõesaproximações
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Algoritmo de De Casteljau
•• Suponha que queiramos aproximar umaSuponha que queiramos aproximar umacurva polinomial entre dois pontos pcurva polinomial entre dois pontos p00 e epp11 dados dados
p0
p1
u
•• A solução natural é um segmentoA solução natural é um segmentode retade reta
p (u) = (1 – u) p0 + u p1
•• Observe que os polinômios (1 Observe que os polinômios (1 –– u) u)e u somam 1 para qualquer valore u somam 1 para qualquer valorde ude u•• São chamados de funções de mistura (São chamados de funções de mistura (blending functionsblending functions))
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
•• Para generalizar a idéia para três pontos pPara generalizar a idéia para três pontos p00,,pp11 e p e p22 consideramos primeiramente os consideramos primeiramente ossegmentos de reta psegmentos de reta p00-p-p11 e p e p11-p-p22
pp0101(u) = (1 (u) = (1 –– u) p u) p00 + u p + u p11pp1212(u) = (1 (u) = (1 –– u) p u) p11 + u p + u p22
•• Podemos agora realizar uma interpolaçãoPodemos agora realizar uma interpolaçãoentre pentre p0101(u) e p(u) e p1212(u)(u)
pp0202(u) = (1 (u) = (1 –– u) p u) p0101 (u) + u p (u) + u p1212 (u) (u) = (1 = (1 –– u) u)22 p p00 + 2 u (1 + 2 u (1 –– u) p u) p11 + u + u22 p p22
Algoritmo de De Casteljau
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
p0
p1
p2
p12
p01
u = 0.25
p02
Algoritmo de De Casteljau
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
p0
p1
p2
p12p01
u = 0.5
p02
Algoritmo de De Casteljau
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
p0
p1
p2
p12
p01u = 0.75
p02
Algoritmo de De Casteljau
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
p0
p1
p2
p02(u)
Algoritmo de De Casteljau
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
•• A curva obtida pode ser entendida como aA curva obtida pode ser entendida como a““misturamistura”” dos pontos p dos pontos p00, p, p11 e p e p22 por intermédio por intermédiode três funções quadráticas:de três funções quadráticas:
b02(u) = (1 – u) 2
b12(u) = 2 u (1 – u)
b22(u) = u2
•• Aplicando mais uma vez a idéia podemos definirAplicando mais uma vez a idéia podemos definiruma cúbica por 4 pontosuma cúbica por 4 pontosp02(u) = (1 – u)
2 p0 + 2 u (1 – u) p1 + u2 p2
p12(u) = (1 – u) 2 p1 + 2 u (1 – u) p2 + u2 p3
p03(u) = (1 – u) p02 (u) + u p12 (u)
= (1 – u) 3 p0 + 3 u (1 – u)2
p1 + 3 u2 (1 – u) p2 + u3 p3
Algoritmo de De Casteljau
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
p0
p1
p2
p02(u)
p12(u)
p3
u = 0.25
p03
Algoritmo de De Casteljau
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
p0
p1
p2
p02(u)
p12(u)
p3
u = 0.5
p03
Algoritmo de De Casteljau
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
p0
p1
p2
p02(u)
p12(u)
p3
u = 0.75
p03
Algoritmo de De Casteljau
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
p0
p1
p2
p02(u)
p12(u)
p3
p03(u)
Algoritmo de De Casteljau
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
•• Novamente temos uma curva dada pela soma deNovamente temos uma curva dada pela soma de4 funções de mistura (agora cúbicas), cada uma4 funções de mistura (agora cúbicas), cada umamultiplicada por um dos 4 pontosmultiplicada por um dos 4 pontos
b03(u) = (1 – u) 3
b13(u) = 3 u (1 – u)2
b23(u) = 3 u2 (1 – u)
b33(u) = u3
•• Em geral, uma curva de grau n pode serEm geral, uma curva de grau n pode serconstruída desta forma e será expressa porconstruída desta forma e será expressa por
!=
=n
j
jnjn ubu0
0 )()( pp
Algoritmo de De Casteljau
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Curvas de Bézier•• As curvas construídas pelo algoritmo de DeAs curvas construídas pelo algoritmo de De
Casteljau Casteljau são conhecidas como são conhecidas como curvas decurvas deBézierBézier e as funções de mistura sãoe as funções de mistura sãochamadas de base chamadas de base Bézier Bézier ou ou polinômios depolinômios deBernsteinBernstein
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Polinômios de BernsteinPolinômios de Bernstein de grau 3
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 0.2 0.4 0.6 0.8 1
u
b03(u)
b13(u)
b23(u)
b33(u)
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Forma Matricial da Base Bézier•• Podemos escrever a equação para umaPodemos escrever a equação para umacurva de curva de Bézier Bézier cúbica na formacúbica na forma
!
p(u) = p03(u) = [1 u u2
u3] M
B
p0
p 1̀
p2
p3
"
#
$ $ $ $
%
&
' ' ' '
onde MB é a matriz de coeficientes da base Bézier
MB
=
1 0 0 0
(3 3 0 0
3 (6 3 0
(1 3 (3 1
"
#
$ $ $ $
%
&
' ' ' '
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Curvas de Hermite
•• Formada por 2 pontos P Formada por 2 pontos P11 e P e P22 e dois e doisvetores construídos como tangentes à curvavetores construídos como tangentes à curvanestes pontosnestes pontos•• A curva passa pelos pontos P A curva passa pelos pontos P11 e P e P22
•• Representação matricialRepresentação matricial
!
P u( ) = u3
u2
u 1[ ]
2 "2 1 1
"3 3 "2 1
0 0 1 0
1 0 0 0
#
$
% % % %
&
'
( ( ( (
P1
P2
R1
R2
#
$
% % % %
&
'
( ( ( (
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Superfícies
••GeneralizaGeneralizaçãoção de curvas de curvas••SuperfSuperfíciesícies de de revoluçãorevolução: rotação de uma: rotação de umacurva plana em torno de um eixocurva plana em torno de um eixo
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Superfícies
••SuperfSuperfíciesícies geradas por deslocamentogeradas por deslocamento::translações de curvas produzem diversastranslações de curvas produzem diversasformas de superfíciesformas de superfícies
MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008
Computação Gráfica
Para saber mais…
•[AZEVEDO03] Capítulo 3•[ANGEL97] Capítulo 9•[FOLEY95] Capítulo 11••Prof. Cláudio Esperança, UFRJ, Notas de aula.Prof. Cláudio Esperança, UFRJ, Notas de aula.