57
Curvas Splines 2019/1 – IC / UFF aula 23 Spline física

aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Curvas Splines

2019/1 – IC / UFF

aula 23

Spline física

Page 2: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Curvas Splines

Spline é uma curva polinomial definida por partes

Tem maior suavidade que as de Hermite e Bezier

(tem curvatura continuas) e são conectadas formando

curvas mais complexas.

Page 3: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Pesos que dão forma são chamados

“ducks” devido a sua forma?

Metal flexível com continuidade

de curvatura: C2

Page 4: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Exemplo de como são usadas

Page 5: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Curvas Splines

Page 6: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Uma equivalência com

essa ferramenta de

desenho é aSpline Cubica Natural

Que tem continuidade C2 e passa pelos pontos

de controle

Ou seja de cara já tem um grau a mais de

continuidade (suavidade) que as anteriores.

Calcular as Splines Naturais com n pontos de

controle envolve inverter uma matriz de

(n+1)x( n+1) pontos

Page 7: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Interpolação com Splines

cúbicasDado um conjunto de N+1 coordenadas de

pontos (P0,P1,P2,..Pn), qual seria a função

paramétrica cúbica que interpola esse

pontos , ou seja precisa-se conhecer os

coeficientes ax,bx,cx,dx,ay,by,cy,dy tais que:

Page 8: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Interpolação

por Splines

CúbicasUsa a teoria das vigas esbeltas

E é apresentada na seção 11.5

de Álgebra Linear

com Aplicações

A. Anton e C. Rorres,

Bookman, 2001

E Capitulo 10 (seção 10.7) de Computer Graphics C version de D. Hearne e M.P. Baker

Page 9: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Mas “Spline” se refere a

um grupo de curvas em

CGPor exemplo a Cardinal é especificada por 4

pontos de controle consecutivos:

P(u) é a curva e Pk-1 , Pk , Pk+1 , Pk+2 são os pontos de controle

Page 10: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

“Cardinal Spline”Especificada por 4 pontos de controle consecutivos:

Os 2 do meio definem o inicio e o fim da curva, e os 2

extremos ajudam a definir as inclinações da mesma

nas extremidades, usando também o ponto seguinte:

P(u) é a curva

Pk-1 , Pk , Pk+1 , Pk+2 =>Os pontos de controle

Page 11: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

“Cardinal

Spline”P(u) é a curva

Pk-1 , Pk , Pk+1 , Pk+2 => pontos de controle

Especifica ainda um parâmetro de tensão t que junto com os ponto

extremos ajudam a definir a influência das inclinações ao longo da

curva pela expressão seguinte:

Page 12: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

“Cardinal

Spline”

Se o parâmetro de tensão t = 0 a

curva é chamada de Catmull-Rom spline ou Overhauser spline:

Matricialmente ela fica:

Page 13: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

“Cardin

al

Spline”Expandindo as expressões:

Onde CAR0 , CAR1 CAR2 CAR3 são as funções de mistura ou interpoladoras da Spline Cardial:

Page 14: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

“Cardin

al

Spline”Como ficam as CAR0 , CAR1 CAR2 CAR3 - funções de mistura

ou interpoladoras da Spline Cardial para t=0 e s=1/2:

Page 15: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Computer Graphics C version de D. Hearne e M.P. Baker , p. 345-357

Page 16: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Catmull-Rom spline

Foi proposta por Edwin Catmull and Raphael

Rom

Catmull (born March 31, 1945) is an

American computer scientist and former

president of Pixar and Walt Disney

Animation Studios. He has contributed to

many important developments in computer

graphics

Page 17: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Raphael Rom

is an computer scientist (from Israel) working

at Israel Institute of Technilogy.

Recebeu seu Ph.D. in 1975 na Universidade

de Utah, ficou conhecidp pelo

desenvolvimento da curva que leva seu

nome e o de Catmull.• Catmull, E, Rom, R. (1974), "A class of local interpolating splines", in

Barnhill, R. E.; Riesenfeld, R. F. (eds.), Computer Aided Geometric

Design, New York: Academic Press, pp. 317–326.

Page 18: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

As Korchanek-Bartel splines, são uma classe

de Cardinais que além do parâmetro de

tensão incluem mais dois:

b – bias e c – continuidadeDando assim ainda mais poder de flexibilidade a interpolação por splines

(Computer Graphics C version de D. Hearne e M.P. Baker , p. 325)

Page 19: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

B-Splines – é a forma de aproximar

por Splines mais usada

Page 20: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção
Page 21: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Caracteristicas.

• o grau do polinomio interpolador é

independente do número de pontos de

controle , m , dentro de certos limites• Permite controle local da forma da

curva, pelos pi pontos de controle .

B-spline ou basis spline

Computer Graphics C version de D. Hearne e M.P. Baker , p. 334-345

Page 22: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Nós ≠ pontos de controle

Page 23: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Nós:

Page 24: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Exemplo controle local

Page 25: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção
Page 26: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Para gerar interpolações lineares,

tem-se k=2, e a curva passa a ser

descrita pelas funções:

1ii

i2i

i2,i tttse

)tt(

)tt()t(N

+

+

≤≤

−=

≤≤

−=

++

++

+

2i1i

1i2i

2i2,i tttse

)tt(

)tt()t(N

≤≤−

≤≤

=

2t1set2

1t0parat)t(N 2,i

)t(N)tt(

)tt()t(N

)tt(

)tt()t(N 2,1i

1i3i

3i2,i

i2i

i3,i +

++

+

+−

−+

−=

3t2se

2t1se

1t0se

)t3(2/1

2

3t

4

3

t21

2

2

2

≤≤

≤≤

≤≤

−−=

Dependendo do vetor de nós escolhido pode-se ter curvas uniformes e periódicas, não periódicas ou não uniformes. Se o

desejado for uma B-Spline periódica definida a intervalos iguais de 1 a partir de 0(zero) teremos

Para gerar interpolações quadráticas tem-se k=3 e as funções são definidas recursivamente como

Onde o valor de Ni+1,2(t) pode ser obtido da expressão anterior. Assim se forem usados intervalos

iguais de t a partir de zero para o vetor de nós, tem-se:

Page 27: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

• Chamada Uniforme B-splines se têm

nós / knots que são eqüidistantes uns

dos outros em função do parâmetro u.

• Muito usadas em CG são as Cúbicas

com m+1 pontos de controle ,

P0,P1,P2,.....Pm onde, m≥3

Page 28: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

As funções de interpolação

cúbica (k=4) para o

mesmo conjunto de nós

(periódicos e uniformes)

serão:

4t3

3t2

2t1

1t0

)t4(6/1

)2t()2t(2/13/2

)2t()2t(2/13/2

t6/1

)t(N

3

23

23

4,i

≤≤

≤≤

≤≤

≤≤

−−−−

−−−−

=

Do mesmo modo pode-se recursivamente gerar qualquer tipo

de B-Spline, não periódico ou não uniforme apenas escolhendo

adequadamente os vetores de nós.

Page 29: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção
Page 30: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção
Page 31: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

A curva inteira B-spline é considerada composta por

segmentos de curvas spline

Page 32: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção
Page 33: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Spline controlada por 4 pontos

Page 34: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

1/6

P3

Page 35: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Funções de

mistura

da cubica

uniforme

anterior

Page 36: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Unido 3 curvas B-Splines

Page 37: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Exemplo de controle local:

Alterando o penúltimo ponto, não se altera o

trecho inicial e só parte do trecho

intermediário

Page 38: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Ao ser controlada por 4 pontos, só

se aproxima dos 2 centrais

Page 39: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Periódicas uniformes

Page 40: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Para criar uma curva

spline fechada:Apenas se repete no final das seqüência dos

pontos de controle da curva os 3 pontos

iniciais

P0, P1, P2, P3 ..... ..... .Pm, P0, P1, P2

Page 41: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Spline com pontos controle coincidentes seguidos =>

Ela acaba por passar pelo ponto

Page 42: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Lembrando o significado

de continuidade

Page 43: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Spline com pontos controle coincidentes seguidos =>

Ela acaba perdendo niveis de continuidade

Page 44: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Spline : efeito das multiplicidades dos pontos de controle ou

coincidencias dos mesmos nas funções de base

Page 45: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Propriedades

Page 46: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Spline =>

propriedades

Page 47: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Spline com pontos controle

coincidentes seguidos =>

perda nivel de continuidade

Page 48: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Spline com pontos controle coincidentes seguidos

Page 49: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Spline com pontos controle coincidentes seguidos

Page 50: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Funções de mistura

Page 51: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

NURBS

Page 52: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Computer Graphics C version de D. Hearne e M.P. Baker , p. 357-349

Page 53: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção
Page 54: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Curvas racionais

Page 55: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Para desenhar uma :

Spline 2D em qualquer linguagem , se a

geração de segmentos de curvas que sejam

controladas por 4 pontos dados de maneira

uniforme, é equivalente a implementar a

equação:

Page 56: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Usuário fornece os pontos X[i],Y[i] e:

Page 57: aula23 - UFFaconci/Aula23-CG2019-Curvas-Spline.pdf · E é apresentada na seção 11.5 de Álgebra Linear com Aplicações A. Anton e C. Rorres, Bookman, 2001 E Capitulo 10 (seção

Bibliografia

• Abel Gomes, Irina Voiculescu, Joaquim Jorge, Brian Wyvill, Callum GalbraithImplicit Curves and Surfaces: Mathematics, Data Structures andAlgorithms, Springer, 2009

• “Computer Graphics: Principles andPractice”, Foley,van Dam, Feiner andHughes; Capítulo 11

• “3D Computer Graphics”, A. Watt, Capítulo 6