32
Introdução à Computação Gráfica Desenho de Construção Naval Manuel Ventura Instituto Superior Técnico Secção Autónoma de Engenharia Naval

Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

Introdução à Computação Gráfica

Desenho de Construção NavalManuel Ventura

Instituto Superior TécnicoSecção Autónoma de Engenharia Naval

Page 2: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 3: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 4: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A 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)

Page 5: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 6: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 7: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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 +⋅−=

Page 8: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 9: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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.

Page 10: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 11: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

M.Ventura 11

Algoritmo de Casteljau

Ordem 3, u=0.75

Page 12: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

M.Ventura 12

Algoritmo de Casteljau

Page 13: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

M.Ventura 13

Algoritmo de Casteljau

Page 14: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

M.Ventura 14

Algoritmo de Casteljau

Page 15: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 16: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 17: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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 −

=− =∑

Page 18: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 19: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 20: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 21: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 22: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 23: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A 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

Page 24: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 25: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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)

Page 26: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 27: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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 )

Page 28: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 29: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 30: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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

Page 31: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

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.

Page 32: Secção Autónoma de Engenharia Naval...M.Ventura 22 Propriedades das Curvas de Bézier •O grau duma curva de Bézier definida por n+1pontos de controlo é igual a n • A curva

M.Ventura 32

Bibliografia

• Rogers, David (1998), “Mathematical Elements for ComputerGraphics”, McGraw-Hill.