Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução à Computação Gráfica Desenho de Construção Naval Manuel Ventura Instituto Superior Técnico Secção Autónoma de Engenharia Naval M.Ventura 2 Sumário • Representação matemática de curvas • Curvas polinomiais e curvas paramétricas • Curvas polinomiais paramétricas • Curvas Bézier 2D • Algoritmo de Casteljau • Propriedades das curvas de Bézier M.Ventura 3 Representação de Curvas Para que uma curva possa ser manipulada interactivamente, é necessário que: – Possa ser processada matematicamente – Permita grande variedade de formas, incluindo rectas e cónicas – Permita modificação controlada – Permita justaposição de segmentos de curva M.Ventura 4 Curvas Polinomiais e Curvas Paramétricas • Interpolação entre dois pontos extremos: – Linear – Quadrática – Cúbica – Etc. • Equações explícitas: y = f(x) • Equações implícitas: f(x,y) = 0 • Equações paramétricas: x = f(t), y = g(t) M.Ventura 5 Curvas Paramétricas Vantagens: • Suportam declives infinitos, curvas fechadas ou multi-valor • Elementos geométricos definidos parametricamente são inerentemente limitados • Expressões paramétricas são facilmente traduzidas na formas de vectores e matrizes • Utilização de um só modelo matemático para representar qualquer curva ou superfície M.Ventura 6 Curva Polinomial Paramétrica k k tctctcctP ⋅++⋅+⋅+= L2210)( • Interpolação linear entre 2 pontos (combinação linear): 10 ≤≤ t( ) 101)( PtPttP ⋅+⋅−= ( ) ( ) 1100)( PtFPtFtP ⋅+⋅= Funções de Mistura ( ) ( ) ( )[ ] ⎥⎦ ⎤⎢⎣ ⎡= 1 0 10 P P tFtFtP M.Ventura 7 Curva Polinomial Paramétrica [ ] 1 0 ( ) 1 a P t t a ⎡ ⎤= ⎢ ⎥⎣ ⎦ [ ] 0 1 1 1 ( ) 1 1 0 P P t t T M B P − ⎡ ⎤⎡ ⎤= = ⋅ ⋅⎢ ⎥⎢ ⎥⎣ ⎦ ⎣ ⎦ 00 101 Pa PPa = +−= Curva polinomial expressa em função do parâmetro e das coordenadas dos pontos que interpola 01)( atatP +⋅= ( ) 001)( PtPPtP +⋅−= M.Ventura 8 Curva Polinomial Paramétrica BMTP ⋅⋅= Pontos da curvaPontos da curva Parâmetro da Parâmetro da curva (grau)curva (grau) InterpolaInterpolaççãoão Pontos de Pontos de controlocontrolo M.Ventura 9 • Desenvolvidas no princípio dos anos 60 na indústria automóvel • Resultado da investigação separada de Pierre Bézier (Renault) e de Casteljau (Citroen) • Curva definida por polígono de controlo Curvas de Bézier • Fácil de generalizar para ordens mais elevadas, inserindo mais pontos de controlo. M.Ventura 10 Algoritmo de Casteljau • Permite calcular qualquer ponto na curva em poucas iterações • Puramente geométrico, não necessita de calcular polinómios • Interpolação linear repetida • O algoritmo pode ser usado como definição da curva M.Ventura 11 Algoritmo de Casteljau Ordem 3, u=0.75 M.Ventura 12 Algoritmo de Casteljau M.Ventura 13 Algoritmo de Casteljau M.Ventura 14 Algoritmo de Casteljau M.Ventura 15 Algoritmo de Casteljau 3P 1P 2P t t−1 t−1 t−1 t−1 t−1 t t t t 0P 0P 1P 2P 3P t−1 t t−1 t t−1 t 10)1( tPPt +− 21)1( tPPt +− 32)1( tPPt +− t−1 t t−1 t 2 2 10 2 )1(2)1( Pt tPtPt + −+− 3 2 21 2 )1(2)1( Pt tPtPt + −+− t−1 t 3 3 2 2 1 2 0 3 )1(3 )1(3 )1( Pt Ptt tPt Pt + −+ −+ − ii i tt i − = −⎟⎟⎠ ⎞ ⎜⎜⎝ ⎛∑ 33 0 )1( 3 Índice do último ponto = No. pontos - 1 M.Ventura 16 Triângulo de Pascal 1 1 1 1 2 1 1 3 3 1 Os coeficientes do polinómio são calculados pelas combinações Que podem ser rapidamente determinadas por uma linha do Triângulo de Pascal: ( ) ! ! ! n i n nC i i n i ⎛ ⎞ = =⎜ ⎟ −⎝ ⎠ n = 0 n = 1 n = 2 n = 3 M.Ventura 17 Algoritmo de Casteljau [ ] 10)1( 3 )1(3)1(3)1()( 0001 0033 0363 1331 1)( 3 3 0 4 3 3 2 2 2 1 3 4 3 2 1 23 ≤≤−⎟⎟⎠ ⎞ ⎜⎜⎝ ⎛= +++−= ⋅⋅= ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ − − − = ∴ − = ∑ t, Ptti PtP-ttP-ttPttQ GMT P P P P ttttQ i ii i bb 3))1(( tt −+ 0 1 1 3)1( t− 2)1(3 -tt 3t )1(3 2 -tt ( )3 33 0 1 1iii i C t t − = − =∑ M.Ventura 18 Resumo Algoritmo de Casteljau Linear Grau 1, Ordem 2 F(0) = P0, F(1) = P1 P0 P1 P0 P1 1-u u F(u) = (1-u) P0 + u P1 P0 P1 P2 Quadrática Grau 2, Ordem 3 F(0) = P0, F(1) = P2 P0 P1 P2 F(u) = (1-u)2 P0 + 2u(1-u) P1 + u2 P2 1-u 1-uu u 1-u u P0 P1 P2 P3 Cúbica Grau 3, Ordem 4 F(0) = P0, F(1) = P3 P0 P1 P2 P3 1-u 1-u 1-u u u u u u u 1-u 1-u F(u) = (1-u)3 P0 +3u(1-u)2 P1 +3u2(1-u) P2 + u3 P3 1-u M.Ventura 19 Curvas de Bézier - Expressões Paramétricas Em que Bi,n é a função polinomial de Bézier , !( ) . .(1 ) !( )! i n i i n nB t t t i n i −= −− ( ) ( ) ( )∑∑ = − = −== n i i inin i n i ini xttCxtBtx 00 , 1 ( ) ( ) ( )∑∑ = − = −== n i i inin i n i ini yttCytBty 00 , 1 n = grau n = número de pontos - 1 M.Ventura 20 Curvas de Bézier - Expressões Paramétricas ( ) ( ) ( ) ( ) ( ) ( )⎩⎨ ⎧ +−+−= +−+−= 2 2 10 2 2 2 10 2 121 121 ytyttytty xtxttxttx n = 2 (grau 2) n = 3 (grau 3) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )⎩⎨ ⎧ +−+−+−= +−+−+−= 3 3 2 2 1 2 0 3 3 3 2 2 1 2 0 3 13131 13131 ytyttyttytty xtxttxttxttx M.Ventura 21 Cálculo e Representação da Curva 1 1 2 2 2 0 0 0 3 3 3 x y 1 P(x,y) P(x,y) P (x,y) (x,y)P x(t) y(t) Atribuindo ao parâmetro t valores reais no intervalo [0,1] (tantos quantos se desejarem), e substituindo nas duas expressões paramétricas, são determinadas as coordenadas de pontos da curva N=3 M.Ventura 22 Propriedades das Curvas de Bézier • O grau duma curva de Bézier definida por n+1 pontos de controlo é igual a n • A curva interpola o primeiro e o último pontos de controlo • A tangente à curva no primeiro ponto de controlo está sobre o segmento de recta que une o primeiro e o segundo pontos de controlo • A tangente à curva no último ponto de controlo está sobre o segmento de recta que une o terceiro e o último pontos de controlo • A curva está inteiramente contida no casco convexo dos seus pontos de controlo • Existem vários processos de determinar pontos da curva M.Ventura 23 Características Geométricas (1) • Podem-se definir curvas fechadas fazendo coincidir o primeiro e o último pontos de controlo. P P0 y P P 3 2 1 x 0P y P P 3 2 x P0 y P 3 x P 2 P 1P1 P 0P 1 y 2 P x 3 P M.Ventura 24 Características Geométricas (2) Concatenação de curvas As curvas podem ter formas mais ou menos complexas, com o número de pontos de controlo que se desejar M.Ventura 25 Exemplo 1 Deduzir as expressões paramétricas e traçar a curva definida pelos pontos do polígono de apoio seguintes: P0 (0,0) P1 (0,1) P2 (1,0) M.Ventura 26 Exemplo 1 - Resolução Há 3 pontos de controlo e, portanto, o grau do polinómio é 2: ( ) ( ) ( ) ( ) ( ) 101201121 2222102 ⋅+⋅−+⋅−=+−+−= ttttxtxttxttx ( ) ( ) ( ) ( ) ( ) 011201121 2222102 ⋅+⋅−+⋅−=+−+−= ttttytyttytty ( ) 2ttx = ( ) ( )ttty −= 12 M.Ventura 27 Exemplo 2 Mantendo os mesmos pontos de controlo P0 e P1 do problema anterior, P0 (0,0) P1 (0,1) determinar a nova posição do ponto P2 sobre o eixo dos XX, de maneira a que a curva gerada passe por P, de coordenadas: P ( 0.5 , 0.5 ) M.Ventura 28 Exemplo 2 - ResoluçãoO polígono de controlo é agora constituído por P0 (0,0) P1 (0,1) P2 (x2,0) Como a curva contem o ponto P(0.5, 0.5), então, existe um valor do parâmetro t para o qual: x(t) = y(t) = 0.5 Recorde-se que as expressões paramétricas p/ n = 2 são ( ) ( ) ( ) ( ) ( ) ( )⎩⎨ ⎧ +−+−= +−+−= 2 2 10 2 2 2 10 2 121 121 ytyttytty xtxttxttx M.Ventura 29 Exemplo 2 - Resolução ⎪⎩ ⎪⎨⎧ +−+−= +−+−= 0.1).1(20.)1()( .0).1(20.)1()( 22 2 22 ttttty xtttttx Substituindo nas expressões paramétricas p/ N=2 teremos ⎩⎨ ⎧ = =⇒ ⎩⎨ ⎧ = =⇒ ⎩⎨ ⎧ = =⇒ ⎩⎨ ⎧ −= = 5.0 2 5.0 .5.05.0 5.0 .5.0 )1(25.0 .5.0 22 2 2 2 2 2 t x t x t xt tt xt Os pontos de controlo são então: P0 (0,0) P1 (0,1) P2 (2,0) e as expressões paramétricas serão: ⎩⎨ ⎧ −= = )1(2)( 2)( 2 ttty ttx M.Ventura 30 Exemplo 2 - Resolução Atribuindo valores a t obtém-se as coordenadas de pontos da curva permitindo traçar o seguinte esboço: Verificação para t = 0.5: ( ) ( ) ( ) ( ) ( )⎩⎨ ⎧ = =⇒ ⎩⎨ ⎧ −××= ×=⇒= 5.05.0 5.05.0 5.015.025.0 5.025.0 5.0 2 y x y x t ⎩⎨ ⎧ −= = )1(2)( 2)( 2 ttty ttx M.Ventura 31 Exercício 1 Considere os seguintes 4 vértices do polígono que define uma Curva de Bézier: ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = 13 34 32 11 B 1. Calcule as funções de Bézier (mistura) para cada ponto de controlo. 2. Calcule 5 pontos da curva e represente-a graficamente. M.Ventura 32 Bibliografia • Rogers, David (1998), “Mathematical Elements for Computer Graphics”, McGraw-Hill. Introdução à Computação Gráfica Sumário Representação de Curvas Curvas Polinomiais e Curvas Paramétricas Curvas Paramétricas Curva Polinomial Paramétrica Curva Polinomial Paramétrica Curva Polinomial Paramétrica Curvas de Bézier Algoritmo de Casteljau Algoritmo de Casteljau Algoritmo de Casteljau Algoritmo de Casteljau Algoritmo de Casteljau Algoritmo de Casteljau Triângulo de Pascal Algoritmo de Casteljau Resumo Algoritmo de Casteljau Curvas de Bézier - Expressões Paramétricas Curvas de Bézier - Expressões Paramétricas Cálculo e Representação da Curva Propriedades das Curvas de Bézier Características Geométricas (1) Características Geométricas (2) Exemplo 1 Exemplo 1 - Resolução Exemplo 2 Exemplo 2 - Resolução Exemplo 2 - Resolução Exemplo 2 - Resolução Exercício 1 Bibliografia
Compartilhar