31
MARCO ANTONIO GARCIA DE CARVALHO Fevereiro de 2008 Computação Gráfica COMPUTAÇÃO GRÁFICA Modelagem Geométrica Curvas e Superfícies

COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

  • Upload
    doanthu

  • View
    233

  • Download
    0

Embed Size (px)

Citation preview

Page 1: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008

Computação Gráfica

COMPUTAÇÃO GRÁFICAModelagem GeométricaCurvas e Superfícies

Page 2: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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/)

Page 3: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 4: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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 !=

Page 5: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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)

Page 6: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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=!+

Page 7: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 8: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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)]

Page 9: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 10: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 11: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 12: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 13: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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))

Page 14: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 15: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008

Computação Gráfica

p0

p1

p2

p12

p01

u = 0.25

p02

Algoritmo de De Casteljau

Page 16: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008

Computação Gráfica

p0

p1

p2

p12p01

u = 0.5

p02

Algoritmo de De Casteljau

Page 17: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008

Computação Gráfica

p0

p1

p2

p12

p01u = 0.75

p02

Algoritmo de De Casteljau

Page 18: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

MARCO ANTONIO GARCIA DE CARVALHOFevereiro de 2008

Computação Gráfica

p0

p1

p2

p02(u)

Algoritmo de De Casteljau

Page 19: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 20: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 21: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 22: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 23: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 24: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 25: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 26: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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)

Page 27: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

"

#

$ $ $ $

%

&

' ' ' '

Page 28: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

#

$

% % % %

&

'

( ( ( (

Page 29: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 30: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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

Page 31: COMPUTAÇÃO GRÁFICA - FTmagic/ST765/CG2009_ModelagemCurvas.pdf · Computação Gráfica Interpolação x Aproximação É natural querermos modelar uma curva suave que passa por

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.