Curvas e Superfícies
Bezier, Splines, NURBS e
Subdivididas
Requisito 1: Independência de eixos
x
y
x'
y'
Requisito 2: Valores Múltiplos
x
y
Requisito 3: Controle Local
x
y
Requisito 4: Pouca Oscilação
polinômio de grau elevado
Requisito 5: Versatilidade
Requisito 6: Amostragem Uniforme
Ds1 Ds2 Ds3 Ds4 Dsn
Ds
i» Ds
jRequisito 7:
Formulação matemática tratável
Finalizando:Solução
Curva representada por partes através de polinômios de grau baixo (geralmente 3)
z z z z y y y y x x x x d t c t b t a t z d t c t b t a t y d t c t b t a t x + + + = + + + = + + + = 2 3 2 3 2 3 ) ( ) ( ) ( [ ] [u u] global u ou local t n , 1 , 0 0 Î Î t=0 t=1 Parametrização t=0 t=1 t=0 t=1t=0 t=1 u0 u1 u2 un z z z z y y y y x x x x d t c t b t a t z d t c t b t a t y d t c t b t a t x + + + = + + + = + + + = 2 3 2 3 2 3 ) ( ) ( ) ( continuidade no ponto comum dos trechos
! = # − #%
em cada trecho:
Interpretação física (cinemática)
de uma curva paramétrica
!
"
#
$ = 0 $' $ =
!($)
"($)
#($)
Derivada paramétrica: ̇! $ =+,+-, ̇" $ =+/+-, ̇# $ =+0+-1 $ =
̇! ($)
̇"($)
̇# ($)
Geometria Diferencial
!
"
#
$ = 0 $' $ =
!($)
"($)
#($)
s = comprimento de arco* $ =
̇! ($)
̇"($)
̇# ($)
=
,-,. ,/ ,. ,0 ,.v
123$â5627: 3 = 3($)
9:;<62171:: 9 =
13($)
1$
̇! $ =
,-,==
,-,.,.,=, …
> 3 =
,-,. ,/ ,. ,0 ,. vetor unitárioGeometria Diferencial
s P(u) ) ( ) ( Pu du d u R! = ! ou P(s) ) ( ) ( ˆ Ps ds d s T = ! ou uT
du
ds
R
!
=
ˆ
) (u s s=R
du
ds
=
!
Requisitos da parametrização
P0 P1 P(u) P(u) (1 u)P0 uP1 ! ! ! + -= 1 0 ( ) )) ( 1 ( ) (u f u P f u P P! = - ! + ! (1-u) ua (1-f(u)) f(u) ub ua ub 0 1 0 ) (u = P du d !Se
u
2>
u
1Þ
s
(
u
2)
>
s
(
u
1)
ucaso contrário o ponto vai e vem na curva!
Continuidade Geométrica e
Paramétrica
Descontínua Contínua: C0e G0 ) 1 ( ) 0 ( 2 1 R R! =! Contínua: C1e G1 ) 1 ( ) 0 ( 2 1 T T! = !C
0e G
1 ) 1 ( ) 0 ( 2 1 R R! ¹ ! Geométrica ) 1 ( ) 0 ( 2 1 T T! ¹ !C
1e G
0 0 ) 1 ( ) 0 ( 2 1 = R = R! ! ParamétricaCurvas de Bézier
P. de Casteljau, 1959 (Citroën)
P. de Bézier, 1962 (Renault) - UNISURF Forest 1970: Polinômios de Bernstein
i i n n i
t
t
i
n
t
B
-
-÷÷
ø
ö
çç
è
æ
=
(
1
)
)
(
,å
==
n i i n it
V
B
t
P
0 ,(
)
)
(
!
!
x P(t) y z t=0 t=1 V0 V1 V2 V3 Vn-1 Vn onde:)!
(
!
!
i
n
i
n
i
n
-=
÷÷
ø
ö
çç
è
æ
coef. binomial pol. BernsteinBézier Cúbicas
3 0 0 3 3 , 0 (1 ) (1 ) 0 3 ) (t t t t B ÷÷ - = -ø ö çç è æ =-x
P(t)å
= = 3 0 3 , ( ) ) ( i i i t V B t P! !y
z
V0 V1 V2 V3 t t t t t B 31 1 2 3 , 1 (1 ) 3(1 ) 1 3 ) ( ÷÷ - = -ø ö çç è æ = -2 2 2 3 3 , 2 (1 ) 3(1 ) 2 3 ) (t t t tt B ÷÷ - = -ø ö çç è æ = -3 3 3 3 3 , 3 (1 ) 3 3 ) (t t t t B ÷÷ - = ø ö çç è æ = -=å
i i t B,3()[
(1 )]
1 3= + -t t 3 3 2 2 1 2 0 33
(
1
)
3
(
1
)
)
1
(
)
(
t
t
V
t
t
V
t
t
V
t
V
P
!
=
-
!
+
-
!
+
-
!
+
!
Polinômios Cúbicos de Bernstein
1 1 0 t B0,3 (1-t)3 3 1 0 t B1,3 3(1-t)2t 1 1 0 t B3,3 t3 1 0 t B2,3 3(1-t) t2 -3 1 1 0 t B0,3 + B1,3 + B2,3 + B3,3Propriedades da Bézier Cúbica
3 3 2 2 1 2 0 3 3(1 ) 3(1 ) ) 1 ( ) (t t V t tV tt V t V P! = - ! + - !+ - !+ !
[
2] [
1 2]
2 3 3 0 2 6(1 ) 3(1 ) 3 6(1 ) ) 1 ( 3 ) (t t V tt t V t ttV t V P dt d ! =- - ! +- - + - ! +- + - ! + ! 0 ) 0 ( V P! = ! 3 ) 1 ( V P! = ! 1 0 3 3 ) 0 ( V V P dt d ! =- ! + ! 3 2 3 3 ) 1 ( V V P dt d ! =- ! + ! x P(t) y z V0 V1 V2 V3 R(0) R(1)Controle da Bézier Cúbica
Fecho Convexo
1 ) ( 0 0 = =å
å
= = n i i n i i iV com t P!a
!a
Equação do Foley
ú ú ú ú ú û ù ê ê ê ê ê ë é ú ú ú ú û ù ê ê ê ê ë é -= z y x z y x z y x z y x V V V V V V V V V V V V t t t t P 3 3 3 2 2 2 1 1 1 0 0 0 2 3 0 0 0 1 0 0 3 3 0 3 6 3 1 3 3 1 1 ) ( !)
(t
P
!
0V
!
1V
!
V
2!
3V
!
3 3 2 2 1 2 0 33
(
1
)
3
(
1
)
)
1
(
)
(
t
t
V
t
t
V
t
t
V
t
V
P
!
=
-
!
+
-
!
+
-
!
+
!
Redução de n=3 para n=2
3 3 2 2 1 2 0 33
(
1
)
3
(
1
)
)
1
(
)
(
t
t
V
t
t
V
t
t
V
t
V
P
!
=
-
!
+
-
!
+
-
!
+
!
1 0 1 0(
t
)
(
1
t
)
V
t
V
V
!
=
-
!
+
!
2 1 1 1(t) (1 t)V tV V! = - ! + ! 3 2 1 2(
t
)
(
1
t
)
V
t
V
V
!
=
-
!
+
!
1 2 2 1 1 1 0 22
(
1
)
)
1
(
)
(
t
t
V
t
t
V
t
V
P
!
=
-
!
+
-
!
+
!
[
]
[
]
[
2 3]
2 2 1 1 0 2)
1
(
)
1
(
)
1
(
2
)
1
(
)
1
(
)
(
V
t
V
t
t
V
t
V
t
t
t
V
t
V
t
t
t
P
!
!
!
!
!
!
!
+
-+
+
-+
+
-=
)
(
1 0t
V
!
) ( 1 1 t V! ) ( 1 2 t V! Bezier n=2Redução de n=2 para n=1
1 1 1 0 2 0(
t
)
(
1
t
)
V
t
V
V
!
=
-
!
+
!
1 2 2 1 1 1 0 22
(
1
)
)
1
(
)
(
t
t
V
t
t
V
t
V
P
!
=
-
!
+
-
!
+
!
[
] [
1]
2 1 1 1 1 1 0(
1
)
)
1
(
)
1
(
)
(
t
t
t
V
t
V
t
t
V
t
V
P
!
=
-
-
!
+
!
+
-
!
+
!
Bezier n=1 1 2 1 1 2 1(t) (1 t)V tV V! = - ! + ! 1 1 2 0)
1
(
)
(
t
t
V
t
V
P
!
=
-
!
+
!
1 0V
!
1 1 V! 1 2 V! 2 0V
!
2 1 V!)
(t
P
!
Cálculo de um Ponto
1 0V
!
1 1V
!
1 2V
!
2 0V
!
2 1V
!
)
(t
P
!
0V
!
1V
!
2V
!
3V
!
1 1V
!
1 0V
!
1 2V
!
2 0V
!
2 1 V!P
(t
)
!
(1-t) t)
(
)
(
)
1
(
)
(
, 1 1, 1 ,t
t
B
t
t
B
t
B
in=
-
in-+
i- n -Mostre que: 0V
!
1V
!
V
2!
3V
!
Subdivisão de Bézier Cúbicas
ú ú ú ú ú û ù ê ê ê ê ê ë é ú ú ú ú û ù ê ê ê ê ë é = ú ú ú ú ú û ù ê ê ê ê ê ë é 3 2 1 0 3 2 1 0 1 3 3 1 0 2 4 2 0 0 4 4 0 0 0 8 8 1 V V V V V V V V L L L L ! ! ! ! ! ! ! ! ú ú ú ú ú û ù ê ê ê ê ê ë é ú ú ú ú û ù ê ê ê ê ë é = ú ú ú ú ú û ù ê ê ê ê ê ë é 3 2 1 0 3 2 1 0 8 0 0 0 4 4 0 0 2 4 2 0 1 3 3 1 8 1 V V V V V V V V R R R R ! ! ! ! ! ! ! ! 1 0 1 2 1 2 1 V V V!L = ! + ! . . . L V!1 H! 0 0 V V!L= ! 1 V! 2 V! L V!2 R L V V3 0 ! ! = R V!1 R V!2 3 3 V V!R= !Construção de uma Bezier
u=1/2
Curve fitting
3 3 2 2 1 2 0 3 3(1 ) 3(1 ) ) 1 ( ) (t t V t tV tt V t V P! = - ! + - !+ - ! + ![
2] [
1 2]
2 2 3 0 2 3(1 ) 6(1 ) 6(1 ) 3 3 ) 1 ( 3 ) (t t V t ttV tt t V t V P dt d ! =- - !+ - - - !+ - - ! + ! 3 2 2 2 1 2 0 2 3(3 4 1) 3( 3 2) 3 ) 1 ( 3 -t V! + t - t+ V!+ -t + t V! + t V! -= 3 2 2 1 0 2 2 3 ) 2 6 ( 3 ) 4 6 ( 3 ) 1 ( 6 ) (t t V t V t V t V P dt d ! = - ! + - !+ - + ! + !(
0 1 2)
2 1 0 2 2 2 6 6 12 6 ) 0 ( V V V V V V P dt d ! ! ! ! ! ! ! + -= + -=(
1 2 3)
3 2 1 2 2 2 6 6 12 6 ) 1 ( V V V V V V P dt d ! = !- ! + ! = !- ! +!(
1 0)
1 0 2 3 3 3 ) 0 ( V V V V P dt d ! =- ! + ! = !-!(
3 2)
3 2 2 3 3 3 ) 1 ( V V V V P dt d ! =- !+ ! = !- !Nova notação
0 V 1 -nc p 2 -nc r 0 p 1 p 1 -n p 2 -nc p 0 r 1 r 1 -n r 1 -nc l 1 -n l 1 l 2 -nc l 1 V 2 V 3 V 4 V 5 V V6 V7 4 -n V n-3 Vn-1 Vn V Vn-2Derivadas na nova notação
1 3 1 2 2 3 3(1 ) 3(1 ) ) 1 ( ) ( = - i+ - i+ - i+ + i+ i t t t t tt t P! p r l p(
1)
2 2 2 6 ) 0 ( = i- i+ i+ i P dt d ! p r l(
1 1)
2 2 2 6 ) 1 ( = i- i+ + i+ P dt d p l r !(
i i)
i P dt d !(0)= 3 r-p(
1 1)
3 ) 1 ( = i+ - i+ i P dt d l p !x
y
z
)
(t
P
!
i i p i r 1 + i l 1 + i pConstrução de uma curva que passa
por 2 pontos
n=2
0 ) 0 ( '' = P! 0 ) 1 ( '' = P 0 p 1 p 0 r 1 l(
2)
0 6p0- r0+l1 =(
2)
0 6 r0- l1+p1 =(
1 0)
0 3 1 p p r =-(
1 0)
1 3 2 p p l =-Construção de uma curva que passa
por 3 pontos
0 p 0 r 2 p 1 r 1 p 1 l 2 l 0 2 0 1 0- r +l = p 0 ) 0 ( '' 0 = P! 0 ) 1 ( '' 1 = P! 0!
1!
0 2 2 2 1- l +p = r 1 1 1 ) 1 ( -rl +rr =p 1 0 0 ! ! ! + = r ÷÷ ÷ ÷ ÷ ø ö çç ç ç ç è æ = ÷÷ ÷ ÷ ÷ ø ö çç ç ç ç è æ ú ú ú ú û ù ê ê ê ê ë é -2 1 0 2 1 1 0 0 2 1 0 0 1 2 2 1 0 ) 1 ( 0 0 0 1 2 p p p l r l r r r ) 0 ( '' ) 1 ( '' 1 0 P P! =! 2 1 1 1 1 0 2l p p 2r l r - + = - +Método contrutivo: dados n pontos
acrescentar mais um
0 p 1 p 1 -n p n p 1 + n p 0 r 1 r n r 1 -n r 1 + n l 1 -n l 1 l n l 1 0 0 ! ! ! + = r n n n r p l + = -r) r 1 ( 1 1 2 2 + - - n+ n= n- n+ n n l p p r l r 0 2 1+ 1= - n+ n+ n l p r ÷ ÷ ÷ ø ö ç ç ç è æ -= ÷ ÷ ÷ ø ö ç ç ç è æ ú ú ú û ù ê ê ê ë é -+ -+ 1 1 1 2 1 0 1 2 2 0 ) 1 ( n n n n n n p r p l r l r rInterpolação: dados p
0…p
nache l’s e r’s
1 p 1 -n p n p 1 + n p 0 r 1 r n r 1 -n r 1 + n l 1 -n l 1 l n l 0 p 0 d 1 d 2 d dnp-2Bezier interpolation
0 p 1 p 2 p 2 -np p 1 -np p 0 r 1 r 2 -np r 2 r 1 -np l 2 l 1 l 2 -np l Given: np points 1 1 0,p, ,pnp -p ! Find: 2(np-1) points 1 2 1,l, ,lnp -l ! 2 1 0,r, ,rnp -r ! Criteria: 0 ''0= p Þ 6(
p0-2r0+l1)
=0 Þ 2r0-l1=p0 0 ''np-1= p Þ6(
rnp-2-2lnp-1+pnp-1)
=0Þ -rnp-2+2lnp-1=pnp-1 right i i left i i d dp' = -1p' Þ 3di(
pi-li)
=3di-1(
ri-pi)
Þ dili+di-1ri=(di-1+di)pi right i left i'' p '' p = Þ6(
ri-1-2li+pi) (
=6pi-2ri-1+li)
Þ -ri-1+2li-2ri-1+li=0Bezier interpolation
Criteria: 0 1 0 2r -l=p 1 1 2 2 - -- + = -rnp lnp pnp i i i i i i il d d d d + -1r=( -1+ )p 0 2 2 1 1+ - + = -ri- li ri- li ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ø ö ç ç ç ç ç ç ç ç ç ç ç è æ + + + = ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ø ö ç ç ç ç ç ç ç ç ç ç ç è æ ú ú ú ú ú ú ú ú ú ú ú û ù ê ê ê ê ê ê ê ê ê ê ê ë é -1 2 2 3 2 2 1 1 1 0 0 1 2 2 2 2 1 1 0 1 2 1 2 0 1 0 ) ( 0 ) ( 0 ) ( 2 1 0 0 0 0 0 0 1 2 2 1 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 1 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 1 0 0 0 0 0 0 0 0 0 0 0 0 1 2 n n n n nc nc nc n n d d d d d d l l l l d d d d d d p p p p p r r r r 2 -np r 0 d 1 d 2 d dnp-2 0 p 1 p 2 p 2 -np p 1 -np p 0 r 1 r 2 r 1 -np l 2 l 1 l 2 -np lresulting linear system:
solve for l and r
Bezier surface (from cross section curves)
x y z N S E W
conventions and notations
x z 00 p ij p 0 ,1 -np p 00 e ij e ij w ij n 0 ,1 -np n 00 ne ij ne ij nw ij s seij ij sw i=0,…,np-1 j= 0, … ,n c-1 00 n 01 p 10 p
Bezier surface (from cross section curves)
1 , 1 0, i, , inc -i p p p ! ni0,ni1,!,ni,nc-2 1 , 1 1, i, , inc -i s s s ! 1 , 1 0, i, , inc -i e e e ! nei0,nei1,!,nei,nc-2 1 , 1 1, i, , inc -i se se se ! 1 , 1 0, i, , inc -i w w w ! nwi0,nwi1,!,nwi,nc-2 1 , 1 1, i, , inc -i sw sw sw ! i=0,…,np-1 i=0,…,np-2 i=1,…,np-1 N S E W x z 00 p ij p 0 ,1 -np p 00 e ij e ij w ij n 0 ,1 -np n 00 ne ij ne ij nw ij s seij ij sw i=0,…,np-1 j= 0, … ,n c-1 00 n 01 p 10 pBezier surface rendering
L V1 ! H! 0 0 V V!L=! 1 V! 2 V! L V2 ! R L V V3 0 ! ! = R V1 ! R V2 ! 3 3 V V!R=! 4x4 7x7 7x4 4(4x4)
B-Splines
• vértices + nós 0 V! 1 V! 2 V! 3 V! V4 ! n V! + + + + + + • • • • • • ) (u P! i n i ip V u N u P!å
! = = 0 , ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( 1, 1 1 1 1 1 , , u u N u u u u N u u u u u N i p i p i p i p i i p i i p i + -+ + + + + -+ -+ -= . 1 0 0 : . pordefinição obs =p = grau do polinômio Ni,p(u)
controla a continuidade ( Cp-1 ) u0 £u1£ u2 £… £ um î í ì Î = + contrário caso u u u se u N i i i 0 ) [ 1 ) ( 1 0 , U={u0, u1, ..., um} m=n+p+1 u0 u2 ui ui+1 ... um u Ni,0(u) u1 ... ui= nós (knots)
[ui,ui+1] = trechos (spans)
Propriedades de N
i,p(u)
• Não negativa: Ni,p(u)³0 para qualquer u, i, e p.
• Partição da unidade:å Ni,p(u)=1 para todo uÎ[u0,um].
• Suporte local: Ni,p(u)=0 se uÏ[ui, ui+p+1]. Mais ainda,
in qualquer intervalo dos nós no máximo p+1 das
Ni,p(u) são não zero.
• Diferenciabilidade: todas as derivadas de Ni,p(u)
existem no interior de um intervalo de nós (onde é
polinômial) . Nos nós Ni,p(u) é p-k diferenciável, onde k
é a multiplicidade do nó.
• Extremo: exceto para o caso p=0, Ni,p(u) tem apenas
Spline Uniforme
) ( ) ) 1 ( ( ) ( ) ( ) ( , 1 1, 1 , N u pd u d p u u N pd u u u Nip i ip- i i+ p -+ + + -=u
j+1- u
j=d
) ( ) ( ) ( ) ( ) ( ) ( ) ( 1, 1 1 1 1 1 , , N u u u u u u N u u u u u N i p i p i p i p i i p i i p i + -+ + + + + -+ -+ -=Splines Uniformes
p=0 e p=1
î í ì Ï Î = + + ) [ 0 ) [ 1 ) ( 1 1 0 , i i i i i se u u u u u u se u N p=0 0 ui-d ui ui+d ... n Ni,0(u) ... p=1(
)
ï ï ï î ïï ï í ì Î Î -+ Î - Î = + + + + ] [ 0 ) [ ) 2 ( ) [ ) 0 [ 0 ) ( 2 2 1 1 1 , m i i i i i i i i i u u u se u u u se d u d u u u u se d u u se u u u N ) ( ) 2 ( ) ( ) ( ) ( , 1 1, 1 1 , N u d u d u u N d u u u Ni i ip- i i+ p -+ + -= Ni,2(u) u-d u u+d u+2dSplines Uniformes
p=2
Ni,1(u) Ni+1,1(u) Ni-1,1(u) ï ï ï ï ï ï î ïï ï ï ï ï í ì Î Î -+ -Î + -+ + -+ -Î -Î = + + + + + + ] , [ 0 ) , [ 2 ) 3 ( ) , [ 2 )) ( )( 3 ( ) 2 )( ( ) , [ 2 ) ( ) , 0 [ 0 ) ( 3 3 2 2 2 2 1 2 1 2 2 2 , 1 m i i i i i i i i i i i i i i u u u se u u u se d u d u u u u se d d u u u d u u d u u u u u u se d u u u u se u N ui-d ui ui+d ui+2d ui+3d p=2 ( ) 2 ) 3 ( ) ( 2 ) ( ) ( ,1 1,1 2 , N u d u d u u N d u u u Ni i i i i+ -+ + -=
Polinômios da B-Spline Uniforme
u ui ui+d ui+2d ui+3d ui+4d
Ni,0 (u) 0 1 0 0 0 0
Ni+1,0 (u) 0 0 1 0 0 0
Ni,1 (u) 0 (u-ui) (ui+2d-u) 0 0 0
Ni+1,1 (u) 0 0 (u-(ui+d)) (ui+3d-u) 0 0
Ni,2 (u) 0 (u-ui)2/2d2 (u-ui)(ui+2d-u)/2d 2 +
(ui+3d-u)(u-(ui+d))/2d2 (ui+3d-u)
2/2d2 0 0
Ni+1,2 (u) 0 0 (u-(ui+d))2/2d2 (u-(ui+d))(ui+3d-u)/2d 2 +
(ui+4d-u)(u-(ui+2d))/2d2 (ui+4d-u)
2/2d2 0
Ni,3 (u) 0 (u-ui)3/6d3
[(u-ui)2(ui+2d-u) +
(u-ui)(ui+3d-u)(u-(ui+d))
+(ui+4d-u)(u-(ui+d))2 ]
/6d3
[(u-ui) (ui+3d-u)2 +
(ui+4d-u)(u-(ui+d))(ui+3d-u)
+ (ui+4d-u)2(u-(ui+2d))]/6d2
(ui+4d-u)3/6d3 0
t t=(u-ui)/d t = (u-(ui+d))/d t = (u-(ui+2d))/d t=(u-(ui+3d))/d
Ni,3 (t) 0 t6/6 (-3t3+3t2+3t+1)/6 (3t3-63t2+4)/6 (1-t)3/6 0 ) ( ) ) 1 ( ( ) ( ) ( ) ( , 1 1, 1 , N u pd u d p u u N pd u u u Nip i ip- i i+ p -+ + + -=
Segmentos da B-spline cúbica
p(t)
0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,0 0,2 0,4 0,6 0,8 1,0t
t3/6 (-3t3+3t2+3t+1)/6 (3t3-6t2+4)/6 (1-t)3/6Funções da base
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 u1 u2 u3 ... um-4 u0 um-3 um-2 u N0,3(u) N2,3(u) N-1,3(u) ... t 2 3 1 2 3 2 3 1 3 6 6 1 3 3 3 6 4 6 3 6 ) 1 ( ) ( - + + + + + + -+ + -+ -= i i i i i V t V t t t V t t V t t P! ! ! ! ! For i = 0, ..., n For t = 0, ..., 1 Nn-1,3(u) um-1 um N1,3(u) i=0 t i=1 t i=n Nn,3(u) Nn+1,3(u)B-Spline Periódica
Foley
-ú ú ú ú ú û ù ê ê ê ê ê ë é ú ú ú ú û ù ê ê ê ê ë é -= + + + + + + -z i y i x i z i y i x i z i y i x i z i y i x i V V V V V V V V V V V V t t t t P , 3 , 3 , 3 , 2 , 2 , 1 , , , , 1 , 1 , 1 2 3 0 1 4 1 0 3 0 3 0 3 6 3 1 3 3 1 1 ) ( !Para cada par Vi, Vi+1, i=0,...,n Para cada t=0,...,1 Periódica: i=0, ... , n V-1= Vn Vn+1= V0 Vn+2= V1 Vn+1= V0 Vn+2=V1 V2 V3 V4 V-1= Vn
B-Spline Não Periódica
Foley
-• vértices + nós 0 V! 1 V! 2 V! 3 V! n-1 V! n V! + + + + + + • • • • • • i=0 i=1 i=2 i=3 1 V! • i=n-1 Vn-1 ! 1 -n V! • i=0 P(0) = (V-1+ 4V0+ V1)/6 P’’(0) = V-1 -2V0+ V1 = 0 ÞV-1= 2V0- V1 i=0; P(0) = V0 i=n-1 P(1) = (Vn-1+ 4Vn+ Vn+1)/6 P’’(1) = Vn-1-2Vn+ Vn+1 ÞVn+1= 2Vn- Vn-1 i=n-1; P(1) = VnBase Periódica
B-Spline Cúbica Uniforme Periódica
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.0 0.2 0.4 0.6 0.8 1.0 u N( u,i ,p) N(u,0,3) N(u,1,3) N(u,2,3) N(u,3,3) N(u,4,3) N(u,6,3) N(u,7,3) U = {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0} V-1= V7 V8= V0 V9= V1 V2 V3 V4 V-3=V5 V-2= V6 i=0 i=1
i=2 i=3 i=4 i=5 i=6 i=7 ) ( ) ( ) ( ) ( ) ( ) ( ) ( 1, 1 1 1 1 1 , , u u N u u u u N u u u u u N i p i p i p i p i i p i i p i ++ + + -+ + -+ -+ -=
Base Não Periódica
B-Spline Cúbica Uniforme e Aperiódica
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0 u N(u ,i ,p ) N(u,0,3) N(u,1,3) N(u,2,3) N(u,3,3) N(u,4,3) N(u,6,3) N(u,7,3) U= {0, 0, 0, 0, 1/4, 2/4, 3/4, 1, 1, 1, 1} ) ( ) ( ) ( ) ( ) (u u u N u u 1 u1N u N = i+p-i - + i+p+- i+ +
-Bézier e B-Spline
Bézier através da B-Spline Cúbica U ={0,0,0,0,1,1,1,1} 0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0 u N(u ,i ,p ) N(u,0,3) N(u,1,3) N(u,2,3) N(u,3,3) ) ( ) ( ) ( ) ( ) ( ) ( ) ( 1, 1 1 1 1 1 , , u u N u u u u N u u u u u N i p i p i p i p i i p i i p i ++ + + -+ + -+ -+ -=
B-Spline Periódica
Interpolação
-Vn+1= V0 Vn+1=V1 V2 V3 V4 V-1= Vn Para i=0,..., n Pi(0) = (Vi-1+ 4Vi+ Vi+1)/6; P0(0) P1(0) P2(0) P3(0) P4(0) Pn(0) Considere os nós como os pontos dadosï ï ï ï þ ïï ï ï ý ü ï ï ï ï î ïï ï ï í ì = ï ï ï ï þ ïï ï ï ý ü ï ï ï ï î ïï ï ï í ì ú ú ú ú ú ú ú ú û ù ê ê ê ê ê ê ê ê ë é n n P P P P P P V V V V V V ! ! ! ! ! ! ! ! ! ! ! ! 4 3 2 1 0 4 3 2 1 0 4 1 0 0 0 1 1 4 1 0 0 0 0 1 4 1 0 0 0 0 1 4 1 0 0 0 0 1 4 1 1 0 0 0 1 4 6 1 • vértices + nós
B-Spline Não Periódica
Foley
-• vértices + nós 0 V! 1 V! 2 V! 3 V! n-1 V! n V! + + + + + + • • • • • • i=0 i=1 i=2 i=3 1 V! • i=n-1 Vn-1 ! 1 -n V! • P0= V0; Pn= Vn; Para i=1,..., n-1 Pi(0) = (Vi-1+ 4Vi+ Vi+1)/6; Considere os nós como os pontos dadosï ï ï ï þ ïï ï ï ý ü ï ï ï ï î ïï ï ï í ì = ï ï ï ï þ ïï ï ï ý ü ï ï ï ï î ïï ï ï í ì ú ú ú ú ú ú ú ú û ù ê ê ê ê ê ê ê ê ë é n n P P P P P P V V V V V V ! ! ! ! ! ! ! ! ! ! ! ! 4 3 2 1 0 4 3 2 1 0 1 0 0 0 0 0 1 4 1 0 0 0 0 1 4 1 0 0 0 0 1 4 1 0 0 0 0 1 4 1 0 0 0 0 0 1 6 1
Funções Racionais
] 1 , 0 [ 1 2 , 1 1 ) ( 2 2 2 Î ÷÷ ø ö çç è æ + + -= u u u u u u P! 2 2 2 1 1 ) cos( 1 2 ) sin( ) 2 / tan( u u u u u + -= + = = a a a Da trigonometria: 0 0.2 0.4 0.6 0.8 1.0Cônicas
c bt at et dt x c bt at e dt y ey dty cy bty y at ty x ey dx cy bxy ax + + + -= + + + -= = + + + + = = + + + + 2 2 2 2 2 2 2 2 2 0 0 x ycônica qualquer escrita num sistema de eixos cuja origem é um ponto da cônica
Qualquer cônica pode ser representada parametricamente como uma fração de polinômios quadráticos
NURBS
Non Uniform Rational B-Splines
yh xh w w=1 x y ú ú ú ú û ù ê ê ê ê ë é = ú ú ú ú û ù ê ê ê ê ë é
å
= i i i i i i i n i ip w z w y w x w u N u w u z u w u y u w u x u w 0 , ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (å
å
= = ï þ ï ý ü ï î ï í ì = ï þ ï ý ü ï î ï í ì n i i i i n k p k k p i i z y x u N w u N w u z u y u x 0 0 , , ) ( ) ( ) ( ) ( ) (å
å
= = = ï þ ï ý ü ï î ï í ì = ï þ ï ý ü ï î ï í ì n i n k k kp p i i p i i i i p i u N w u N w u R onde z y x u R u z u y u x 0 0 , , , , ) ( ) ( ) ( ) ( ) ( ) ( ) (Cônicas como NURBS
} 1 , 1 , 1 , 0 , 0 , 0 { ) ( ) ( : ) ( ) ( ) ( ) ( ) ( ) ( ) ( 2 , 2 , 2 2 , 2 1 2 , 1 0 2 , 0 2 2 2 , 2 1 1 2 , 1 0 0 2 , 0 = = + + + + = U com u N u B onde w u B w u B w u B V w u B V w u B V w u B u P i i ! ! ! ! 0 V! V2 ! 1 V! w0=1 w1=s/(1-s) w2=1 w1=0 0.2 -0.2 1 3 s Elipse (w 1<1) Parábola (w1=1) Hipérbola (w1>1) Faux et al. w0w2/w1 - determina a cônica 0 V! V2 ! 1 V! w0=1 w1=s/(1-s) w2=1 w1=0 0.2 -0.2 1 3 s Elipse (w 1<1) Parábola (w1=1) Hipérbola (w1>1) S! M! 1 2 1 ) 1 ( ) ( V s M s S e S P ! ! ! ! ! + -= =Círculo através de NURBS
U={0, 0, 0, 1/4, 1/4, 1/2, 1/2, 3/4, 3/4, 1, 1, 1} { } ,1} 2 2 , 1 , 2 2 , 1 , 2 2 , 1 , 2 2 , 1 { = w