Você está na página 1de 13

SPLINES

Antigamente, a forma final aproximada ou completa de uma curva em um projeto, como o


casco de um navio ou o perfil da fuselagem de um avio, podia ser obtida atravs de um processo
chamado lofting(soteamento), que consistia na utilizao de uma barra longa e estreita fabricada
com um material resistente a esforos transversais e longitudinais, como madeira ou plstico. Esta
barra era modelada no formato de uma curva desejada aplicando-se tenses ao longo da barra com
pesos e suportes de conduo denominados ducks(patos).
duck

Dispositivos mecnicos que podem atuar como pesos de conduo ducks:

molas
suporte suporte

pesos

A curva formada pela barra modelada pelos pesos de conduo uma spline fsica e sua
forma alterada pelo valor, posio e nmero destes pesos, o que possibilita uma conduo da
curva atravs de pontos determinados. Com o advento da computao, houve um considervel
interesse no desenvolvimento matemtico deste processo.
Analiticamente, a forma da spline determinada pela deflexo da barra em cada ponto onde
so aplicados os pesos.
forma original da barra

deflexo

O valor desta deflexo dado pela equao de Euler para o momento fletor ao longo da
barra:
M(x) = E.I
R(x)
onde: M(x) = momento fletor;
E = mdulo de Young (propriedade do material que compe a barra);
I = momento de inrcia;
R(x) = raio da curvatura da barra.

O material utilizado na barra origina pequenas deflexes em razo da resistncia e para


oferecer maior suavidade curva. Deste modo, y<<1 e o raio da curvatura aproximado para:

R( x ) =
(1+ y' )
2 3
1

y' ' y' '
Considerando que os pesos de conduo atuam como simples suportes sem variao no
esforo que exercem na barra, o momento fletor M(x) varia linearmente entre estes pesos, ou seja:
M(x) = A.x + B
E.I
A.x + B = E.I.y' '
R( x )
y' = A.x +B = A.x + B
E.I
Considerando E.I constante e integrando duas vezes:
y = A1.x3 + B1.x2 + C1.x + D1
Esta a equao de um pedao da spline fsica em funo de x: a funo spline cbica.
Matematicamente, esta funo um pedao de polinmio, que consiste na juno de polinmios,
limitado por um determinado intervalo, tal que a continuidade da curva resultante desta funo
satisfeita nos pontos de juno. Como exemplo a funo abaixo, g(t), formada pelos polinmios a(t),
b(t) e c(t).
g(t)
junes b(t)

a(t)

c(t)

amplitude
t

ns
suporte

Alm do terceiro grau, a funo spline pode possuir outros graus, sendo a spline de grau n
um pedao de polinmio que tem continuidade da derivada de ordem n1 em cada n. As Curvas
Spline so uma mistura de vetores utilizando pedaos de polinmios, sendo contnua nos seus ns.
As splines constitudas por polinmios de baixo grau so mais teis para o preenchimento de curvas
pela reduo no tempo de processamento dos clculos e da instabilidade numrica presente em
curvas de alto grau. Como polinmios de baixo grau podem no conectar determinados pontos,
quando deseja-se que a curva passe por determinados pontos, utiliza-se uma tcnica unindo uma
srie de segmentos de spline cbica, com cada segmento conectando somente dois pontos.
pontos de
preenchimento da
curva pedaos de polinmios

A equao para um segmento de spline cbica dada por:


4
P( t ) = B i .t i1
k =0
Onde t1 e t2 so os valores do parmetro t no incio e fim dos segmentos.
Os coeficientes constantes Bi so determinados por quatro condies de contorno (spline
cbica):

P(t) = B1 + B2.t + B3.t2 + B4.t3 t1 t t2

Se P1 e P2 so os vetores posio inicial e final do segmento, respectivamente. Ento:


P(0) = P1 e P(t2) = P2
P(0) = P1 = B1 + B2.0 + B3.0 + B4.0 = B1
P1 = B1
P(t2) = B1 + B2.t2 + B3.t22 + B4.t23

Considere tambm P1 e P2 os vetores tangentes iniciais e finais dos extremos do segmento


spline:

P(0) = P1
P(t2) = P2
P(t) = B2 + 2.B3.t + 3.B4.t2
P(0) = B2 +2.B3.0 + 3.B4.0 = B2 = P1
P(t2) = B2 + 2.B3.t2 + 3.B4.t22

Foram obtidos os valores de B2 e B1 partir dos vetores extremos de posio e tangentes.


Isolando-se B3 e B4:

P(t2) = P2 = B2 + 2.B3.t2 + 3.B4.t22 = P1 + 2.B3.t2 + 3.B4.t22


P(t2) = P2 = B1 + B2.t2 + B3.t22 + B4.t23 = P1 + P1 + B3.t22 + B4.t23

Resolvendo-se as duas equaes acima para B3 e B4 em relao aos vetores iniciais e finais de
posio e tangentes:

B3 = 3.(P2 P1) 2.P1 P2


t22 t2 t2
B4 = 2.(P1 P2) + P1+ P2
t23 t22 t22

Substituindo na equao inicial de P(t):

P(t) = P1 + P1.t + 3.(P2 P1) 2.P1 P2 .t2 + 2.(P1 P2) + P1+ P2 .t3
t22 t2 t2 t23 t22 t22

Do exposto acima, conclui-se que a forma do segmento de spline cbica depende dos vetores
posio e tangentes nos extremos do segmento alm do valor final do parmetro t, que deve ser
conhecido. Para a representao de uma curva completa, agrupam-se diversos segmentos como
este.
Na juno dos segmentos, o vetor tangente P2 torna-se interno curva, possibilitando sua
determinao por uma condio de continuidade, pois a curvatura contnua atravs da juno, ou
seja, a derivada segunda de P2 (juno) contnua:

4
P(t) = (i 1).(i 2).B .t
i =1
i
i3
t1 t t2

para o primeiro segmento P(t2) = 2.B3 + 6.B4.t22 t1 t t2


Considerando a faixa de valores do parmetro t de 0 t3 para o segundo segmento conectado por
P2:
para o segundo segmento P(0) = 2.B3 + 6.B4.0 = 2.B3 t2 t t3
Como P(t2) = P(0)

2.B3 + 6.B4.t22 = 2.B3


6.t2. 2.(P1 P2) + P1 + P2 + 2. 3.(P2 P1) 2.P1 P2 = 2. 3.(P3 P2) 2.P2 P3
t23 t22 t22 t22 t2 t2 t22 t2 t2
As funes splines podem ser utilizadas como funes de mistura. Considere a curva p(t)
baseada no polgono de controle p0, p1, p2, p3, p4.
4
p( t ) = p k .gk ( t )
k =0
Com gk(t) = g(t k) para k = 0, 1, 2, 3, 4.
g0(t) g1(t) g2(t) g3(t) g4(t)

p0 p1

p2

p4 p3

A forma acima pode ser generalizada para utilizar L + 1 pontos de controle, variando kt de 0
L:

p 0, p 5 p1, p6

p2

p4 P3

t tk t t
Nk,m ( t ) = .Nk,m1 ( t ) + k +m .Nk +1,m1 ( t )
t k +m1 t k t k +m t k +1
sendo: vetor de ns T = (t0, t1, t2, ...), (L + 1) pontos de controle pk e m a ordem das funes B-
Splines.
A frmula acima uma definio recursiva para construo de uma funo de ordem m a partir de
duas funes B-spline de ordem m 1. A funo de primeira ordem igual 1 dentro dos
seguintes intervalos:

Nk,1(t) = 1 para tk< t tk+1


0 para outro intervalo
t 2t
N 0,2 ( t ) = .N 0,1 ( t ) + .N1,1 ( t )
1 1
Um exemplo a forma da funo dada abaixo, que a primeira funo B-spline de ordem m=2, para
os ns equidistantes.
onde t para 0 t 1
N0,2(t) = 2 t para 1 t 2
0 para outro intervalo
N0,2(t)

t 2-t

t
1 2

N1,2(t) um pulso triangular deslocado de


uma unidade de t: Ni,2(t) = N0,2(t).(t i).

Para funes B-spline quadrticas (m = 3) baseadas nos mesmos ns equidistantes, necessrio


t 3t
N 0,3 ( t ) =
.N 0,2 ( t ) + .N1,2 ( t )
2 2
obter somente N0,3(t), pois as outras funes so somente translaes desta:
O primeiro termo uma rampa vezes o primeiro pulso triangular, e o segundo termo uma
rampa decrescente vezes o segundo pulso, produzindo duas parbolas coincidentes em uma
extremidade. Quando os dois termos em N0,3(t) so somados, as extremidades desaparecem e o
pulso resultante tem uma derivada contnua. O segmento mdio envolve a soma de duas
quadrticas resultando:
0 para 0 t 1
1 2 para 1 t 2
.t
2
N0,3(t) = 3 3 2 para 2 t 3
t
4 2
1 2 para outro intervalo
.(3 t )
2

N0,2(t) N1,2(t)

t
1 2 3
As outras formas spline quadrticas, Nk,3(t) so obtidas facilmente quando os ns so equidistantes:
se o n tk = k ento Nk,m(t) = N0,m(t k).

A spline cbica talvez a spline mais utilizada frequentemente. N0,4(t) mostrado na figura
abaixo simtrico ao redor de t=2 e pode ser representado compactamente como:

u.(1 t) para 0 t 1
v.(2 t) para 1 t 2
N0,4(t) = v.(t 2) para 2 t 3
u.(t 3) para 3 t 4
0 para outro intervalo
onde os dois segmentos u( ) e v( ) so dados por:
1 3
u( t ) = .(1 t )
6
1
v( t ) = . 3.t 3 6.t 2 + 4
6
( )
N0,4(t)

2/3
v.(t 2)
v.(2 t)

1/6 u.(t 3)
u.(1 t)

t
1 2 3 4

u.(t)
v(t)

2/3

1/6

t t
1 1

O clculo das derivadas mostra que a primeira e segunda derivadas da spline cbica so contnuas.

Baseado no raciocnio exposto nas funes anteriores, em geral a funo Nk,m(t) inicia em tk e
termina em tk+m, seu suporte [tk, tk+m], e sempre positivo.

Estes pontos de controle formam uma malha externa superfcie, e o controle que cada ponto
exerce sobre a curva determinado pelos pesos associados a cada um, ou seja, a malha de
controle destes pontos define a superfcie NURBS.

Definio de uma Funo Spline:


Uma spline de grau m ou de m-simo grau um pedao polinomial de grau m que possui
continuidade de derivadas de ordem m-1 em cada n.

A equao y = A1.x3 + B1.x2 + C1.x + D1 um exemplo de uma funo spline cbica de y em


funo de x. Matematicamente, esta funo tambm um pedao de polinmio, que consiste na
juno de pedaos de outros polinmios, limitado em um determinado intervalo, tal que a
continuidade da curva resultante desta funo satisfeita nos pontos de juno.
As prprias splines podem ser utilizadas para definir uma curva. As Curvas Spline so uma
mistura de vetores utilizando pedaos de polinmios, sendo contnua nos seus ns. As splines
constitudas por polinmios de baixo grau so teis para o preenchimento de curvas pela reduo no
tempo de processamento dos clculos e da instabilidade numrica presente em curvas de alto grau.
Como polinmios de baixo grau podem no conectar determinados pontos, quando deseja-se que a
curva passe por determinados pontos em uma interpolao, utiliza-se uma tcnica unindo uma srie
de segmentos de spline (geralmente spline cbica), com cada segmento conectando somente dois
pontos.

pontos de
preenchimento da
curva pedaos de polinmios

Caso seja possvel para as funes de mistura spline assumirem outras formas e havendo
L+1 pontos de controle p0, p1,...., pL; associando cada um destes pontos uma funo de mistura
Rk(t) a curva dada por:
L
p( t ) = p k .R k ( t )
k =0

Esta formulao pode ser utilizada para curvas de Bezier e curvas quadrticas spline. Para
manter manusevel a famlia de formas das possveis funes de mistura, cada funo Rk(t) deve
ser um pedao de polinmio contnuo sendo tambm contnuo em cada n. Ento a curva total p(t)
uma soma de funes spline ponderada pelos pontos de controle, com a condio dos segmentos
definirem esta curva como contnua. Tal curva chamada de curva spline.
Existem famlias de funes de mistura que podem ser utilizadas para gerar qualquer curva
spline para um determinado vetor de ns. Tais famlias so chamadas de base para as splines, com
o significado de que toda e qualquer curva spline pode ser obtida pela frmula geral acima com os
pontos de controle adequados. Existem muitas famlias de funes de mistura que so bases, mas
existe uma em especial que oferece o menor suporte e conseqentemente o melhor controle local:
so as Basis-splines, ou apenas B-splines.As curvas spline so definidas por:

L
p( t ) = p k .N k ,m ( t )
k =0
E as funes B-spline por:

t tk t t
Nk,m ( t ) = .Nk,m1 ( t ) + k +m .Nk +1,m1 ( t )
t k +m1 t k t k +m t k +1
sendo: tk os valores do parmetro definido nos ns e dado pelo vetor de ns T = (t0, t1, t2, ...);
k = 0, 1, 2, ..., L; sendo o nmero de pontos de controle igual a (L+1);
m a ordem das funes B-Splines.
Relembrando que a ordem indica o nmero de termos no polinmios, ou seja, o grau do
polinmio adicionado de uma unidade; se a ordem dos polinmios de uma funo b-spline 3, o
grau destes mesmos polinmios 2; se a ordem 4, o grau do polinmio 3 e assim por diante.
A frmula acima uma definio recursiva para a construo de uma funo de ordem m a
partir de duas funes B-spline de ordem m 1. A funo de primeira ordem igual 1 dentro dos
seguintes intervalos:
Nk,1(t) = 1 para tk< t tk+1
0 para outro intervalo

t 2t
N 0,2 ( t ) = .N 0,1 ( t ) + .N1,1 ( t )
1 1

Um exemplo a forma da funo dada abaixo, que a primeira funo B-spline de ordem m=2, para
os ns equidistantes.
onde
t para 0 t 1
N0,2(t) = 2 t para 1 t 2 N0,2(t)
0 para outro intervalo

N1,2(t) um pulso triangular deslocado de t 2-t


uma unidade de t: Ni,2(t) = N0,2(t).(t i).

t
1 2

Do que foi exposto acima possvel deduzir que a escolha dos valores dos parmetros para
uma superfcie spline de tal importncia a ponto de alterar a preciso e a qualidade final da
superfcie. Na gerao de uma superfcie, pode-se utilizar valores de parmetros que variam
uniformemente, como t = 0, 1, 2, 3,......
Nos casos de interpolao, em que a superfcie a ser gerada deve passar ou aproximar um
conjunto de pontos, a uniformidade na distribuio dos parmetros pode resultar em impreciso ou
m qualidade na forma final da superfcie, caso os pontos fornecidos para a interpolao tenham
uma distribuio no uniforme. Neste caso, valores de parmetros que acompanhem esta
distribuio so mais convenientes.
Nas figuras abaixo nota-se a diferena na escolha da distribuio dos valores do parmetro:
na figura a dado o conjunto de pontos a ser interpolado, e as figuras c e d mostram a imagem
final com a distribuio uniforme e no uniforme dos valores do parmetro. A distribuio no
uniforme apresenta uma qualidade final melhor porque os pontos fornecidos para a imagem
concentram-se principalmente em detalhes, como as curvas que formam contornos de faces e
extremidades.
B-SPLINES

Para possibilitar um melhor controle local e a mudana de grau da curva resultante as funes
de mistura so substitudas pelas funes base B-spline (Basis spline) definidas por:

Nk,1(t) = 1 para tk< t tk+1


0 para outro intervalo
t tk t t
Nk,m ( t ) = .Nk,m1( t ) + k +m .Nk +1,m1( t )
t k +m1 t k t k +m t k +1
t 2t
N0,2 (t) = . N0 ,1 (t) + . N1,1 (t)
1 1
Sendo: T = (t0, t1, t2, ...) : vetor de ns;
(k + 1) : nmero de pontos de controle;
m : ordem das funes B-Splines.

SUPERFCIES NURBS - NON UNIFORM RATIONAL B-SPLINE

n m

w
i = 0 j= 0
i,j Pi,j Ni,p (u) N j,q (v)
S(u, v) = n m

wi=0 j=0
i, j Ni,p (u) N j,q (v)

- wi,j so os pesos;
- Pi,j so os pontos que formam uma rede de controle da superfcie;
- Ni, p(u) e Nj, q(v) so as funes base B-Spline normalizadas de grau p e q nas direes u e v
respectivamente definidas por:

Ni , 0(u) = 1 se ui u < ui+1;


0 caso contrrio;

u ui u i + p +1 u
N i ,p (u ) = N i ,p1 (u ) + N i +1,p1 (u )
u i+p u i u i + p +1 u i +1

* a construo de Nj, q(v) similar;

- u e v so os valores dos ns que definem as direes da curva, fornecidos pelos vetores de ns:

U={0, 0,..., 0, up+1,..., ur-p-1, 1, 1,..., 1};


V={0, 0,..., 0, vq+1,..., vs-q-1, 1, 1,..., 1};
g(t)
junes b(t)

a(t)

c(t)

amplitude
t
ns
suporte

Ns: valores do parmetro nos quais ocorre a juno dos pedaos de polinmio;
Suporte: intervalo no qual a funo diferente de zero;
Amplitude: intervalo de valores do parmetro que definem um pedao polinomial;
Junes: pontos de unio dos pedaos polinomiais definidos pelo valor do parmetro t e da
funo g(t);

* Para uma superfcie necessrio uma matriz de ns para as curvas que compem a superfcie em
duas direes (ou dois vetores de ns).

As superfcies NURBS so formadas por curvas que satisfazem as condies de uma curva NURBS
nos dois sentidos (ou direes) de formao da superfcie.
Vantagens

Oferecem uma forma matemtica comum para a representao de design de formas


analticas (cnicas, qudricas, superfcies de revoluo,...) e superfcies de forma livre (a mo
livre). Deste modo, formas analticas e formas livres so representadas precisamente, e
podem ser armazenadas em um banco de dados unificado;
Pela manipulao dos pontos de controle assim como os pesos, fornecem a flexibilidade para
o design de uma grande variedade de formas;
A evoluo razoavelmente rpida e computacionalmente estvel;
Possuem interpretaes geomtricas claras, tornando-as teis para designers que possuem
um bom conhecimento em geometria especialmente geometria descritiva;
Fornecem um poderoso tool kit (insero/refinamento/remoo de ns, elevao do grau,
diviso, ...) o qual pode ser utilizado para design, anlise, processo e objetos de interrogao;
So invariantes sob mudana de escala, rotao, translao e cortes assim como na projeo
perspectiva e paralela;
So generalizaes genunas das formas B-spline no racionais assim como das superfcies
de Bezier racionais e no racionais.

Desvantagens

Armazenamento extra necessrio para definir superfcies tradicionais. Como exemplo, para
representar um crculo inteiro so necessrios sete pontos de controle formando um quadrado
e dez ns enquanto a representao tradicional requer somente o raio, centro e o vetor
normal ao plano que contm o crculo. Em 3D, significa armazenar 38 nmeros ao invs de
sete;
Aplicao imprpria dos pesos pode resultar em uma parametrizao muito ruim que pode
destruir construes subseqentes da superfcie;
Algumas tcnicas de interrogao trabalham melhor com formas tradicionais do que com
NURBS. Um exemplo a interseo de superfcies em que particularmente difcil manusear
casos de toque correto ou envoltrio;
Algoritmos fundamentais, como mapeamento de ponto inverso, so sujeitos instabilidade
numrica.

Você também pode gostar