Post on 20-Nov-2020
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.