Estudo e Desenvolvimento da Adaptação duma Viatura Ligeira ...
Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau...
Transcript of Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau...
Introdução à Computação Gráfica
Desenho de Construção NavalManuel Ventura
Instituto Superior TécnicoSecçã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
kk tctctcctP ⋅++⋅+⋅+= L2
210)(
• Interpolação linear entre 2 pontos (combinação linear):
10 ≤≤ t( ) 101)( PtPttP ⋅+⋅−=
( ) ( ) 1100)( PtFPtFtP ⋅+⋅=
Funções de Mistura
( ) ( ) ( )[ ] ⎥⎦
⎤⎢⎣
⎡=
1
010 P
PtFtFtP
M.Ventura 7
Curva Polinomial Paramétrica
[ ] 1
0
( ) 1a
P t ta⎡ ⎤
= ⎢ ⎥⎣ ⎦
[ ] 0
1
1 1( ) 1
1 0P
P t t T M BP
− ⎡ ⎤⎡ ⎤= = ⋅ ⋅⎢ ⎥⎢ ⎥
⎣ ⎦ ⎣ ⎦
00
101
PaPPa
=+−=
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ústriaautomó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, inserindomais 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 2Pt
t−1
t−1 t−1t−1
t−1t
tt
t
0P0P
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
22
102 )1(2)1(
Pt
tPtPt
+
−+−
32
212 )1(2)1(
Pt
tPtPt
+
−+−
t−1
t
33
22
12
03
)1(3)1(3
)1(
Pt
PtttPt
Pt
+
−+
−+
−
ii
itt
i−
=
−⎟⎟⎠
⎞⎜⎜⎝
⎛∑ 33
0)1(
3
Índice do último ponto = No. pontos - 1
M.Ventura 16
Triângulo de Pascal
11 1
1 2 11 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:
( )!
! !ni
n nCi 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()(
0001003303631331
1)(
33
0
43
32
22
13
4
3
2
1
23
≤≤−⎟⎟⎠
⎞⎜⎜⎝
⎛=
+++−=
⋅⋅=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−
=
∴
−
=∑ t, Ptt
i
PtP-ttP-ttPttQ
GMT PPPP
ttttQ
iii
i
bb
3))1(( tt −+ 0
1
1
3)1( t−2)1(3 -tt
3t
)1(3 2 -tt
( )3 33
01 1ii
ii
C t t −
=− =∑
M.Ventura 18
Resumo Algoritmo de Casteljau
LinearGrau 1, Ordem 2
F(0) = P0, F(1) = P1
P0
P1
P0 P11-u u
F(u) = (1-u) P0 + u P1
P0
P1
P2Quadrática
Grau 2, Ordem 3F(0) = P0, F(1) = P2P0 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
P3Cúbica
Grau 3, Ordem 4F(0) = P0, F(1) = P3
P0 P1 P2 P31-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 nnB t t t
i n i−= −
−
( ) ( ) ( )∑∑=
−
=
−==n
ii
inini
n
iini xttCxtBtx
00, 1
( ) ( ) ( )∑∑=
−
=
−==n
ii
inini
n
iini yttCytBty
00, 1
n = grau
n = número de pontos - 1
M.Ventura 20
Curvas de Bézier - Expressões Paramétricas
( ) ( ) ( )( ) ( ) ( )⎩
⎨⎧
+−+−=+−+−=
22
102
22
102
121121
ytyttyttyxtxttxttx
n = 2 (grau 2)
n = 3 (grau 3)
( ) ( ) ( ) ( )( ) ( ) ( ) ( )⎩
⎨⎧
+−+−+−=+−+−+−=
33
22
12
03
33
22
12
03
1313113131
ytyttyttyttyxtxttxttxttx
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 pontosde 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 seuspontos 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
P3
2
1
x0P
y
P
P3
2
x P0
y
P3
x
P2
P1P
1P
0P
1
y
2P
x3P
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 222
210
2 ⋅+⋅−+⋅−=+−+−= ttttxtxttxttx
( ) ( ) ( ) ( ) ( ) 011201121 222
210
2 ⋅+⋅−+⋅−=+−+−= 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ção
O 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
( ) ( ) ( )( ) ( ) ( )⎩
⎨⎧
+−+−=+−+−=
22
102
22
102
121121
ytyttyttyxtxttxttx
M.Ventura 29
Exemplo 2 - Resolução
⎪⎩
⎪⎨⎧
+−+−=
+−+−=
0.1).1(20.)1()(
.0).1(20.)1()(22
222
ttttty
xtttttx
Substituindo nas expressões paramétricas p/ N=2 teremos
⎩⎨⎧==
⇒⎩⎨⎧
==
⇒⎩⎨⎧
==
⇒⎩⎨⎧
−==
5.02
5.0.5.05.0
5.0.5.0
)1(25.0.5.0 22
22
22
2
tx
tx
txt
ttxt
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
tttyttx
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.05.05.0
5.015.025.05.025.0
5.02
yx
yx
t
⎩⎨⎧
−==
)1(2)(2)( 2
tttyttx
M.Ventura 31
Exercício 1
Considere os seguintes 4 vértices do polígono que define umaCurva de Bézier:
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
13343211
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 ComputerGraphics”, McGraw-Hill.