Professional Documents
Culture Documents
Umum
Bezier curve mempunyai kesulitan dalam melakukan local modification
dan infleksibilitas sebagai hasil dari suatu kenyataan dimana jumlah vertices dari
poligon sangat menentukan order dari kurva yang dihasilkan. Untuk mengatasi
masalah-masalah ini, kita memerlukan basis function yang tidak sama dengan nol
untuk sejumlah span yang terbatas dan oleh karenanya order dapat dipilih sesuai
dengan keinginan kita.
B-Spline basis memenuhi persyaratan-persyaratan diatas. Metode ini
pertama kali diusulkan oleh Schoenberg pada tahun 1946 dan dikembangkan oleh
Cox dan de Boor (1972). Basis diterapkan pada curve definition oleh Riesenfeld
(1973). Dalam bab ini kita akan mempelajari teori dasar dari teknik ini dan sifat-
sifat dari kurva yang dihasilkan dengan B-Spline.
1
4 yang akan meningkatkan jumlah boundary condition yang dibutuhkan menjadi
7. Oleh karena itu, satu boundary condition tambahan ini akan menghasilkan
sebuah basis function yang non-zero untuk 4 span seperti nampak pada diagram
dibawah.
Spline.
2
Dengan demikian kita sekarang dapat menentukan kurva cubic B-Spline
yang ditentukan oleh sebuah control polygon dengan n+1 vertices, sebagai
berikut:
n
Q(t ) Pi N 4,i (t )
i 0
Kita juga menginginkan kurva ini bermula pada vertices pertama (first vertex) dan
berakhir pada last vertex. Kita dapat menjamin kondisi ini dengan menyediakan 4
multiple knots diujung awal dan ujung akhir. Oleh karena itu, knot set akan
mempunyai bentuk sebagai berikut:
[0 0 0 0 1 2 3 4 tmax tmax tmax tmax ]
Dalam hal ini, dapat kita lihat bahwa harga tmax = 3. Pada umumnya harga tmax
dihitung sebagai berikut:
tmax = n m + 2
dimana:
n = jumlah vertices minus 1
m = order dari B-Spline (degree = m 1)
3
Sebuah kurva B-Spline dengan order 5 dan dengan sebuah control polygon
yang memiliki 10 vertices akan mempunyai nilai parameter maximum sama
dengan 6, tmax = (10 1) 5 + 2 = 6 dan knots setnya adalah:
[0 0 0 0 0 1 2 3 4 5 6 6 6 6 6]
Sekarang kita kaji lebih dalam tentang sifat-sifat B-Spline. Kita dapat
menggambar sebuah diagram Nm,i (t) terhadap t sebagai berikut:
N4,1
N4,0
N4,2
N4,3
N4,4
0 1 2 3 4 5 t
n
a) Q(t ) Pi N m,i (t )
i 0
untuk t = 0 :
n
Q(0) Pi N m,i (0)
i 0
Dari diagram diatas, B-Spline yang non-zero pada t = 0 hanyalah Nm,i (0) = 1, jadi
Q(0) = Pi dan Q(tmax) = Pn
4
d n n
d
b)
dt i 0
N m,i (t )
i 0 dt
N m,i (t )
n
= N
i 0
m,i (t )
Dari normalisasi:
n
N
i 0
m,i (t ) 1
n
d
jadi N
i 0
m,i (0)
dt
(1) 0
Basis function yang non-zero disini hanyalah Nm,0 (0) dan Nm,1 (0), jadi
N'm,0 (0) = - N'm,1 (0)
n
Q'(0) = PN
i 0
i m,i (0) = P0 N'm,0 (0) + P1 N'm,1 (0)
dimana: 0 t tmax
5
= dummy variable
ti = knot set
[0 0 0 1 2 3 tmax tmax tmax ]
1, jika ti t ti+1
untuk N1,i (t) =
0, jika tidak pada range diatas
0
konvensi lainnya adalah 0
0
Contoh soal:
Untuk sebuah control polygon dengan vertices sebagai berikut:
P0 = (2,1) P1 = ( 4,3 ) P2 = ( 6,3 ) P3 = ( 8,2 ) P4 = ( 9,0 )
Buatlah sebuah kurva cubic B-Spline!
Pemecahan:
n = jumlah vertices 1 = 5 1 = 4
m = degree + 1 = 4
tmax = n m + 2 = 4 4 + 2 =2
knot set:
[0 0 0 0 1 2 2 2 2]
6
Menentukan nilai-nilai N,i (t) :
Untuk = 1 N1,i (t)
i t 0 0.5 1 1.5 2
0 1 0 0 0 0
1 1 0 0 0 0
2 1 0 0 0 0
3 1 1 1 0 0
4 0 0 1 1 1
5 0 0 0 0 1
6 0 0 0 0 1
7 0 0 0 0 1
Untuk = 2
(t ti ) N1,i (t ) (ti 2 t ) N1,i 1 (t )
N 2,i (t )
ti 1 ti ti 2 ti 1
i t 0 0.5 1 1.5 2
0 0 0 0 0 0
1 0 0 0 0 0
2 1 0.5 0 0 0
3 0 0.5 1 0.5 0
4 0 0 0 0.5 0
5 0 0 0 0 0
6 0 0 0 0 0
7
Untuk = 3
(t ti ) N 2,i (t ) (ti 3 t ) N 2,i 1 (t )
N3,i (t )
ti 2 ti ti 3 ti 1
i t 0 0.5 1 1.5 2
0 0 0 0 0 0
1 1 0.25 0 0 0
2 0 0.625 0.5 0.125 0
3 0 0.125 0.5 0.625 0
4 0 0 0 0.25 1
5 0 0 0 0 0
Untuk = 4
(t ti ) N3,i (t ) (ti 4 t ) N3,i 1 (t )
N 4,i (t )
ti 3 ti ti 4 ti 1
i t 0 0.5 1 1.5 2
0 1 0.125 0 0 0
1 0 0.59375 0.25 0.0625 0
2 0 0.25 0.25 0.34375 0
3 0 0.03125 0.25 0.59375 0
4 0 0 0 0 1
t=0
Q (t) = P0 = [ 2 1 ]
t = 0.5
Q (t) = 0.125 P0 + 0.59375 P1 + 0.25 P2 + 0.03125 P3 + 0 P4
= [ 4.375 2.71875 ]
t=1
Q (t) = 0.25 P1 + 0.5 P2 + 0.25 P3 = [ 6 2.75 ]
8
t = 1.5
Q (t) = 0.0625 P1 + 0.34375 P2 + 0.59375 P3 = [ 7.0625 2.40625 ]
t=2
Q (t) = P4 = [ 9 0]
Plotting kurva
2 4 6 8 9
Catatan tambahan:
Misal:
Untuk 6 vertices , n = 5
Cubic B-Spline , m = 4
tmax = 5 4 + 2 = 3
knot set :
[0 0 0 0 1 2 3 3 3 3]
9
Untuk 12 vertices, n = 11
Untuk degree 6, m = 7
tmax = 11 7 + 2 = 6
knot set:
[0 0 0 0 0 0 0 1 2 3 4 5 6 6 6 6 6 6 6]
10