Buscar

DCN 1.2 CG Curvas Parametricas

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

Continue navegando