Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk...

28
Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Transcript of Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk...

Page 1: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Modelagem de Curvas

Fonte: Material do Prof. Jack van Wijk

Prof. Márcio Bueno

{cgtarde,cgnoite}@marciobueno.com

Page 2: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Conteúdo

2

Curvas Paramétricas

Requisitos

Conceitos

Intepolação Linear

Interpolação de Lagrange

Curva de Bézier

Computação Gráfica - Márcio Bueno

Page 3: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Curvas Paramétricas

3

ttpttp

tptpt

tptpt

yx

yx

yx

d/)('d,d/)(d

)('),(')('

:curva a enteVetor tang

)(),()(

:aParamétric Curva

p

pt

p(t) p’(t)

Computação Gráfica - Márcio Bueno

Page 4: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Linha Tangente à Curva

4

)(')()(

:)( curva à tangente)( Linha

tsts

ts

ppq

pq

t

p(t) p’(t)

s

q(s)

Computação Gráfica - Márcio Bueno

Page 5: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Exemplo

5

]cossin,sin[cos

)(')()(

]cos,sin[)('

]sin,[cos)(

tsttst

tsts

ttt

ttt

ppq

p

p

tp(t)

p’(t)

s

q(s)

Computação Gráfica - Márcio Bueno

Page 6: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Modelagem de Curvas

6

Problema: Como definir uma curva suave?

Solução:

Especificar uma seqüência de pontos pi , i = 1,…, N, (pontos-

de-controle);

Gerar uma curva suave que interpola ou aproxima estes pontos-

de-controle.

Computação Gráfica - Márcio Bueno

Page 7: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Requisitos

7

Suave

nenhuma discontinuidade em direção e curvatura;

Controle Local

alteração de um ponto deve ter efeito apenas local;

Intuitivo e fácil de usar

sem oscilações, variação decrescente

Aproximar or interpolar?

Computação Gráfica - Márcio Bueno

Page 8: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Interpolação Paramétrica

8

1)(

:)( de Requisito

controle.-de-pontos dos balanceada média :Curva

. ponto o para deou de função a é )(

,)()(

:Padrão Fórmula

1

1

N

i

i

i

ii

i

N

i

i

tw

tw

blendingweightingtw

twt

p

pp

Computação Gráfica - Márcio Bueno

Page 9: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Interpolação Linear de Dois Pontos

9

p1

p2

t

.)(

e ,1)(

com ,)()(

ou ,)1()(

2

1

2

1

21

ttw

ttw

twt

ttt

i

i

i

pp

ppp

Computação Gráfica - Márcio Bueno

Page 10: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Interpolação Linear de N Pontos

10

p1

p2

t

contrário caso0

1 se1

1 se1

)(

com,1 ,)()(1

ititi

itiit

tw

Nttwt

i

i

N

i

i pp

p3

p4p5

t

wi

1 2 3 4 5

1

0

Computação Gráfica - Márcio Bueno

Page 11: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Interpolação Linear

11

Não é suave

Controle local

Intuitiva e fácil de usar

Interpola

Computação Gráfica - Márcio Bueno

Page 12: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Interpolação de Lagrange - 1

12

.pontos os interpola )( é, isto ,)( então

se0

se1)(

Se .,...,2,1 Seja

os?interpolad todosestejam controle-de-pontos os

que tal)( polinômiosencontrar podemos

,1 ,)()( Dado1

tk

ik

ikkw

Nk

tw

Nttwt

k

i

i

i

i

N

i

i

ppp

p

pp

Computação Gráfica - Márcio Bueno

Page 13: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Interpolação de Lagrange - 2

13

42

13

2

3

6

1

)41)(31)(21(

)4)(3)(2()(

:4N para Exemplo

if0

if1)( satisfaz

)( :Lagrange de Polinômio

23

1

tttttt

tw

ik

ikkw

ji

jttw

i

ij

i

Computação Gráfica - Márcio Bueno

Page 14: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Interpolação de Lagrange - 3

14 Computação Gráfica - Márcio Bueno

Page 15: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Interpolação de Lagrange - 4

15

Suave

nenhuma discontinuidade em direção e curvatura

SEM controle local

Oscilações radicais, sem variações decrescentes!

Interpola

Computação Gráfica - Márcio Bueno

Page 16: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Curva de Bézier - 1

16

Quebra-cabeça: Defina uma curva suave que interpola o

primeiro e último ponto e aproxima os outros.

p1

p2

p3

p4

Computação Gráfica - Márcio Bueno

Page 17: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Curva de Bézier - 2

17

Solução para N=3:

3

2

21

2

3221

21

322

211

)1(2)1(

))1(())1)((1(

)()()1()(

)1()(

)1()(

ppp

pppp

qqp

ppq

ppq

tttt

tttttt

ttttt

ttt

ttt

p1

p2

p3

q2

q1

p(t)

Computação Gráfica - Márcio Bueno

Page 18: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Curva de Bézier - 3

18

Solution for N=4:

4

3

3

2

2

2

1

3 )1(3)1(3)1()( ppppp ttttttt

p1

p2 p3

p(t)

p4

Computação Gráfica - Márcio Bueno

Page 19: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Curva de Bézier - 4

19

.

)1(!)!(

!)(

com ,10 ,)()(

:pontos 1

,

0

,

iin

Ni

i

N

i

Ni

ttiiN

NtB

ttBt

N

pp

Computação Gráfica - Márcio Bueno

(Polinômio de

Bernstein)

Page 20: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Bézier curve - 5

20 Computação Gráfica - Márcio Bueno

Page 21: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Bézier curve - 6

21

Curva de Bézier geral:

• Grau = #pontos-1

• Suave

– nenhuma discontinuidade em direção e curvatura;

• SEM controle local

• Variações decrescentes, propriedade do

“convex hull”

• Interpola o primeiro e o último ponto e

aproxima os outros pontosComputação Gráfica - Márcio Bueno

Page 22: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Propriedade do “convex hull”

22

0)(

e 1)(

:se controle

- de-pontos dos hull"convex " do dentro contida está

curvaA pontos. os todoscontém que convexo polígono

menor o é :pontos de conjunto um de hull"Convex "

i

tw

tw

i

i

Computação Gráfica - Márcio Bueno

Page 23: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Exemplo da Propriedade do “Convex Hull”

23

Curva fora do

“convex hull”

Curva dentro do

“convex hull”

Computação Gráfica - Márcio Bueno

Page 24: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Curva de Bézier Cúbica

24

p0

p1 p2

p3

Computação Gráfica - Márcio Bueno

Page 25: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Juntando dois segmentos de Bezier

25

Continuidade posicional:

p3 = q0

Continuidade tangencial:

p3- p2 // q1- q0

p0

p2

p3q0

q2

q3

p1

q1

Computação Gráfica - Márcio Bueno

Page 26: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Quebra-cabeça 1: Limite na interpolação

26

Descubra por que uma curva que

interpola os pontos de controle

está contida no “convex hull”,

e é suave

não existe, nem graficamente nem matematicamente.

Computação Gráfica - Márcio Bueno

Page 27: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Quebra-cabeça 2: Dividir curva de Bezier

27

Encontre uma receita para dividir um segmento de curva

de Bezier cúbica em dois segmentos:

p0

p2

p3 q0

q1

q6

p1 q2 q3 q4

q5

Computação Gráfica - Márcio Bueno

Page 28: Modelagem de Curvas - Marcio Bueno · Modelagem de Curvas Fonte: Material do Prof. Jack van Wijk Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Finalmente...

28

Curvas: interpolação de pontos

Interpolação é geralmente aplicável superfícies: interpolação

de curvas

Programa de Exemplo:

http://www.win.tue.nl/~vanwijk/2M050/spline.exe

Computação Gráfica - Márcio Bueno