curvas e superfícies bezier, splines, nurbs e subdivididas
Embed Size (px)
TRANSCRIPT

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 4: Continuidade Variável

Requisito 5: Versatilidade

Requisito 6: Amostragem Uniforme
s1
s2
s3
s4
sn
si sj
Requisito 7:Formulação matemática tratável
Finalizando:

Solução
Curva representada por partes através de polinômios de grau baixo (geralmente 3) Curva representada por partes através de polinômios de grau baixo (geralmente 3)
zzzz
yyyy
xxxx
dtctbtatz
dtctbtaty
dtctbtatx
23
23
23
)(
)(
)(
globaluuu
ou
localt
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
zzzz
yyyy
xxxx
dtctbtatz
dtctbtaty
dtctbtatx
23
23
23
)(
)(
)(
continuidade no ponto comum dos trechos

Geometria Diferencial
s
P(u)
)()( uPdu
duR
ou P(s)
)()(ˆ sPds
dsT
ou u
Tdu
dsR ˆ
)(uss
Rdu
ds

Requisitos da parametrização
P0
P1
P(u)10)1()( PuPuuP
10 )())(1()( PufPufuP
(1-u)
ua
(1-f(u)) f(u)
ubua
ub0
1
0)( uPdu
d
)()( 1212 ususuuSe
u

Continuidade Geométrica e Paramétrica
Descontínua Contínua: C0 e G0
)1()0( 21 RR
Contínua: C1 e G1
)1()0( 21 TT
C0 e G1
)1()0( 21 RR
Geométrica
)1()0( 21 TT
C1 e G0
0)1()0( 21 RR
Paramétrica

Curvas de Bézier
P. de Casteljau, 1959 (Citroën)P. de Bézier, 1962 (Renault) - UNISURFForest 1970: Polinômios de Bernstein
iinni tt
i
ntB
)1()(,
n
iini VtBtP
0, )()(
x
P(t)
y
z
t=0
t=1
V0
V1
V2
V3
Vn-1
Vn onde:
)!(!
!
ini
n
i
n
coef. binomial
pol. Bernstein

Bézier Cúbicas
30033,0 )1()1(
0
3)( ttttB
x
P(t)
3
03, )()(
iii VtBtP
y
z
V0
V1
V2
V3
tttttB 21133,1 )1(3)1(
1
3)(
22233,2 )1(3)1(
2
3)( tttttB
33333,3 )1(
3
3)( ttttB
i
i tB )(3, 1)1( 3 tt
33
22
12
03 )1(3)1(3)1()( VtVttVttVttP

Polinômios Cúbicos de Bernstein
1
10 t
B0,3
(1-t)3
3
10 t
B1,3
3(1-t)2t
1
10 t
B3,3
t3
10 t
B2,3
3(1-t) t2
-3
1
10 t
B0,3 + B1,3 + B2,3 + B3,3

Propriedades da Bézier Cúbica
33
22
12
03 )1(3)1(3)1()( VtVttVttVttP
33
22
12
02 )1(63)1(3)1(6)1(3)( VtVtttVtttVttP
dt
d
0)0( VP
3)1( VP
10 33)0( VVPdt
d
32 33)1( VVPdt
d
x
P(t)
y
z
V0
V1
V2
V3
R(0)
R(1)

Controle da Bézier Cúbica

Fecho Convexo
1)(00
n
ii
n
iii comVtP

Equação do Foley
zyx
zyx
zyx
zyx
VVV
VVV
VVV
VVV
ttttP
333
222
111
000
23
0001
0033
0363
1331
1)(
)(tP
0V
1V 2V
3V
33
22
12
03 )1(3)1(3)1()( VtVttVttVttP

Redução de n=3 para n=2
33
22
12
03 )1(3)1(3)1()( VtVttVttVttP
101
0 )1()( VtVttV
211
1 )1()( VtVttV
321
2 )1()( VtVttV
12
211
10
2 )1(2)1()( VtVttVttP
32
2
21102
)1(
)1()1(2)1()1()(
VtVtt
VtVtttVtVtttP
)(10 tV
)(11 tV )(1
2 tV
Bezier n=2

Redução de n=2 para n=1
11
10
20 )1()( VtVttV
12
211
10
2 )1(2)1()( VtVttVttP
1211
11
10 )1()1()1()( VtVttVtVtttP
Bezier n=1
12
11
21 )1()( VtVttV
11
20)1()( VtVttP
10V
11V
12V
20V
21V
)(tP

Cálculo de um Ponto
10V
11V
12V
20V
21V
)(tP
0V
1V
2V
3V
11V
10V
12V
20V
21V )(tP
(1-t)
t
)()()1()( 1,11,, tBttBttB ninini Mostre que:
0V
1V 2V
3V

Subdivisão de Bézier Cúbicas
3
2
1
0
3
2
1
0
1331
0242
0044
0008
8
1
V
V
V
V
V
V
V
V
L
L
L
L
3
2
1
0
3
2
1
0
8000
4400
2420
1331
8
1
V
V
V
V
V
V
V
V
R
R
R
R
101 2
1
2
1VVV L
. . .LV1
H
00 VV L
1V
2V
LV2
RL VV 03
RV1
RV2
33 VV R

Construção de uma Bezier
u=1/2
P(1/2)

Curve fitting
33
22
12
03 )1(3)1(3)1()( VtVttVttVttP
32
22
12
02 33)1(6)1(6)1(3)1(3)( VtVtttVtttVttP
dt
d
32
22
12
02 3)23(3)143(3)1(3 VtVttVttVt
32
2102
2
3)26(3)46(3)1(6)( VtVtVtVttPdt
d
2102102
2
266126)0( VVVVVVPdt
d
3213212
2
266126)1( VVVVVVPdt
d
01102 333)0( VVVVP
dt
d
23322 333)1( VVVVP
dt
d

Nova notação
0V
1ncp
2ncr
0p
1p1np
2ncp
0r
1r
1nr
1ncl
1nl
1l
2ncl
1V
2V
3V
4V
5V 6V 7V
4nVnV1nV3nV 2nV

Derivadas na nova notação
13
1223 )1(3)1(3)1()( iiiii tttttttP plrp
12
2
26)0( iiiiPdt
dlrp
112
2
26)1( iiiPdt
dplr
iiiPdt
dpr 3)0(
113)1( iiiPdt
dlp
x
y
z
)(tPi
ip
ir
1il
1ip

Construção de uma curva que passa por 2 pontos
n=2
0)0('' P
0)1('' P
0p
1p
0r
1l
026 100 lrp
026 110 plr
010 3
1ppr
011 3
2ppl

Construção de uma curva que passa por 3 pontos
0p
0r
2p
1r
1p1l
2l
02 100 lrp
0)0(''0 P
0)1(''1 P
0
1
02 221 plr
111)1( prl
10
0
2
1
0
2
1
1
0
0
2100
1221
0)1(0
0012
p
p
p
l
r
l
r
)0('')1('' 10 PP
211110 22 lrpplr

Método contrutivo: dados n pontos acrescentar mais um
0p
1p1np
np
1np
0r
1r
nr
1nr
1nl
1nl
1l
nl
10
0
nnn prl )1(
11 22 nnnnnn lrpplr
02 11 nnn plr
1
1
1210
122
0)1(
n
n
n
n
n
n
p
r
p
l
r
l

Interpolação: dados p0…pn ache l’s e r’s
1p1np
np
1np
0r
1r
nr
1nr
1nl
1nl
1l
nl
0p

0d
1d
2d2npd
Bezier interpolation
0p
1p
2p
2npp
1npp
0r
1r
2npr
2r
1npl
2l
1l
2npl
Given: np points
110 ,,, npppp
Find: 2(np-1) points
121 ,,, nplll
210 ,,, nprrr Criteria:
0'' 0p 026 100 lrp 0102 pr l
0'' 1npp 026 112 npnpnp l pr 112 2 npnpnp l pr
rightiileftii dd '' 1 pp iiiiii dld prp 133 iiiiiii dddld pr )( 11
rightilefti '''' pp iiiiii ll 11 2626 rppr 022 11 iiii ll rr

Bezier interpolation Criteria:
0102 pr l
112 2 npnpnp l pr
iiiiiii dddld pr )( 11
022 11 iiii ll rr
1
223
221
110
0
1
2
2
2
2
1
1
0
12
12
01
0
)(
0
)(
0
)(
21000000
12210000
000000
00122100
000000
00001221
000000
00000012
n
nnn
nc
nc
ncnn dd
dd
dd
l
l
l
l
dd
dd
dd
p
p
p
p
p
r
r
r
r
2npr
0d
1d
2d2npd
0p
1p
2p
2npp
1npp
0r
1r
2r
1npl
2l
1l
2npl
resulting linear system:
solve for l and r

Bezier surface (from cross section curves)
x
y
z
N
S
EW
conventions and notations
x
z
00p
ijp
0,1npp00e
ijeijw
ijn
0,1npn00ne
ijneijnw
ijs ijseijsw
i=0,…,np-1
j=0,
…,n
c-1
00n
01p
10p
pij is the point i of curve j

Bezier surface (from cross section curves)
1,10 ,,, nciii ppp 2,10 ,,, nciii nnn
1,11 ,,, nciii sss
1,10 ,,, nciii eee 2,10 ,,, nciii nenene
1,11 ,,, nciii sesese
1,10 ,,, nciii www 2,10 ,,, nciii nwnwnw
1,11 ,,, nciii swswsw
i=0,…,np-1
i=0,…,np-2
i=1,…,np-1
N
S
EW
x
z
00p
ijp
0,1npp00e
ijeijw
ijn
0,1npn00ne
ijneijnw
ijs ijseijsw
i=0,…,np-1
j=0,
…,n
c-1
00n
01p
10p

Bezier surface rendering
LV1
H
00 VV L
1V
2V
LV2
RL VV 03
RV1
RV2
33 VV R
4x4
7x7
7x4
4(4x4)

B-Splines
• vértices+ nós
0V
1V
2V
3V 4V
nV
+
+ +
++ +
•
•
•
••
•
)(uP
i
n
ipi VuNuP
0
, )()(
)()(
)()(
)(
)()( 1,1
11
11,, uN
uu
uuuN
uu
uuuN pi
ipi
pipi
ipi
ipi
.10
0:. definiçãoporobs
p = grau do polinômio Ni,p(u) controla a continuidade ( Cp-1 )
u0 u1 u2 … um
contráriocaso
uuuseuN ii
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 Ni,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 uu0,um.
• Suporte local: Ni,p(u)=0 se uui, 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 um ponto de máximo.

Spline Uniforme
)())1((
)()(
)( 1,11,, uNpd
udpuuN
pd
uuuN pi
ipi
ipi
uj+1- uj =d
)()(
)()(
)(
)()( 1,1
11
11,, uN
uu
uuuN
uu
uuuN pi
ipi
pipi
ipi
ipi

Splines Uniformes p=0 e p=1
)[0
)[1)(
1
10,
ii
iii uuuse
uuuseuN
p=0
0 ui-d ui ui+d n...
Ni,0(u)
...
p=1
][0
)[)2(
)[
)0[0
)(
2
21
1
1,
mi
iii
iii
i
i
uuuse
uuused
udu
uuused
uuuuse
uN
)()2(
)()(
)( 1,11,1, uNd
uduuN
d
uuuN pi
ipi
ii
Ni,2(u)
ui-d ui ui+d ui+2d

Splines Uniformesp=2
Ni,1(u) Ni+1,1(u)Ni-1,1(u)
],[0
),[2
)3(
),[2
))()(3()2)((
),[2
)(
),0[0
)(
3
322
2
212
12
2
2,1
mi
iii
iiiiii
iii
i
uuuse
uuused
udu
uuused
duuuduuduuu
uuused
uu
uuse
uN
ui-d ui ui+d ui+2d ui+3d
p=2 )(2
)3()(
2
)()( 1,11,2, uN
d
uduuN
d
uuuN i
ii
ii

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)/2d2 +
(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)/2d2 +(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,11,, uNpd
udpuuN
pd
uuuN pi
ipi
ipi

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/6

Funções da base
00,1
0,2
0,3
0,4
0,5
0,6
0,7
u1 u2 u3 ... um-4u0uum-3 um-2
N0,3(u) N2,3(u)N-1,3(u) ...
t
2
3
1
2323
1
3
66
1333
6
463
6
)1()(
iiiii V
tV
tttV
ttV
ttP
For i = 0, ..., n For t = 0, ..., 1
Nn-1,3(u)
um-1 um
N1,3(u)
i=0
ti=1
ti=n
Nn,3(u) Nn+1,3(u)

B-Spline Periódica- Foley -
ziyixi
ziyixi
ziyixi
ziyixi
VVV
VVV
VVV
VVV
ttttP
,3,3,3
,2,2,1
,,,
,1,1,1
23
0141
0303
0363
1331
1)(
Para cada par Vi, Vi+1 , i=0,...,n Para cada t=0,...,1
Periódica: i=0, ... , nV-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
0V
1V
2V
3V 1nV
nV
+
++
+
+ +
•
•
•
•
••
i=0
i=1 i=2
i=3
1V
•
i=n-1 1nV
1nV
•
i=0P(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) = Vn

Base 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=2i=3 i=4
i=5
i=6
i=7
) () (
) () (
) (
) () (1 , 1
1 1
11 , ,u N
u u
u uu N
u u
u uu Np i
i p i
p ip i
i p i
ip 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}
) () (
) () (
) (
) () (1 , 1
1 1
11 , ,u N
u u
u uu N
u u
u uu Np i
i p i
p ip i
i p i
ip i

Bézier e B-Spline
Bézier através da B-Spline CúbicaU ={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
11 , ,u N
u u
u uu N
u u
u uu Np i
i p i
p ip i
i p i
ip i

B-Spline Periódica- Interpolação -
Vn+1= V0 Vn+1 =V1
V2
V3
V4
V-1= Vn
Para i=0,..., nPi(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
nn P
P
P
P
P
P
V
V
V
V
V
V
4
3
2
1
0
4
3
2
1
0
410001
141000
014100
001410
000141
100014
6
1
• vértices+ nós

B-Spline Não Periódica- Foley -
• vértices+ nós
0V
1V
2V
3V 1nV
nV
+
++
+
+ +
•
•
•
•
••
i=0
i=1 i=2
i=3
1V
•
i=n-1 1nV
1nV
•
P0 = V0 ; Pn = Vn ;
Para i=1,..., n-1Pi(0) = (Vi-1+ 4Vi+ Vi+1)/6;
Considere os nós como os pontos dados
nn P
P
P
P
P
P
V
V
V
V
V
V
4
3
2
1
0
4
3
2
1
0
100000
141000
014100
001410
000141
000001
6
1

Funções Racionais
]1,0[
1
2,
1
1)(
22
2
u
u
u
u
uuP
2
2
2
1
1)cos(
1
2)sin(
)2/tan(
u
u
u
u
u
Da trigonometria:
0
0.2
0.4
0.6
0.8
1.0
0.2 0.4 0.6 0.8 1.0

Cônicas
cbtat
etdtx
cbtat
edty
eydtycybtyyat
tyx
eydxcybxyax
2
2
2
2222
22
0
0
x
y
cônica qualquer escrita num sistema deeixos cuja origem é um ponto da cônica
Qualquer cônica pode ser representada parametricamentecomo uma fração de polinômios quadráticos

NURBSNon Uniform Rational B-Splines
yh
xh
w
w=1
x
y
i
ii
ii
ii
n
ipi
w
zw
yw
xw
uN
uw
uzuw
uyuw
uxuw
0, )(
)(
)()(
)()(
)()(
n
ii
i
i
n
kpkk
pii
z
y
x
uNw
uNw
uz
uy
ux
0
0,
,
)(
)(
)(
)(
)(
n
in
kpkk
piipi
i
i
i
pi
uNw
uNwuRonde
z
y
x
uR
uz
uy
ux
0
0,
,,,
)(
)()()(
)(
)(
)(

Cônicas como NURBS
}1,1,1,0,0,0{)()(
:
)()()(
)()()()(
2,2,
22,212,102,0
222,2112,1002,0
UcomuNuB
onde
wuBwuBwuB
VwuBVwuBVwuBuP
ii
0V
2V
1V
w0=1
w1=s/(1-s)
w2=1w1=0
0.2
-0.2
1
3
sElipse (w1<1)
Parábola (w1=1)
Hipérbola (w1>1)
Faux et al. w0w2 /w1 - determina a cônica
0V
2V
1V
w0=1
w1=s/(1-s)
w2=1w1=0
0.2
-0.2
1
3
sElipse (w1<1)
Parábola (w1=1)
Hipérbola (w1>1)
S
M
1
21
)1(
)(
VsMsS
eSP

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
8
08
02,
2,2,2,
)(
)()()(
)(
)(
i
kkk
iii
i
ii
uNw
uNwuRonde
y
xuR
uy
ux
-1
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
n=8p=2m=12
(x0 , y0)
(x1 , y1)(x2 , y2)(x3 , y3)
(x4 , y4)
(x5 , y5) (x6 , y6)(x7, y7)
(x8 , y8)