• Tidak ada hasil yang ditemukan

Konversi Basis Polinomial dengan Prinsip Blossom

Dalam dokumen BAB 2 REPRESENTASI KURVA (Halaman 31-40)

Kurva Bézier dan B-spline merupakan kurva polinomial. Namun sepertinya polinomial tersebut tidak jelas terlihat karena pendekatan yang dibahas di sini lebih ke arah geometri. Namun sesungguhnya, kurva tersebut tetap merupakan suatu fungsi polinomial berderajat n, dengan suatu parameter t yang didefinisikan sepanjang interval tertentu ([ti, ti+1]).

Seperti yang telah kita ketahui, fungsi polinomial suatu kurva berderajat n adalah:

P(t) =a0 +a1t+a2t2 +...+antn

Di mana P(t) adalah titik kurva pada t (x(t), y(t)) dan t didefinisikan pada [ti, ti+1].

Kita akan melihat fungsi polinomial dari contoh kurva Bézier kuadratik sebelumnya (lihat gambar 3.8).

Untuk mendapatkan titik-titik kurva, kita terapkan algoritma de Casteljau berikut:

Gambar 3.26 Algoritma de Casteljau (kiri) untuk mendapatkan titik kurva di t (kanan).

Titik pada kurva adalah P(t), yang didapatkan dari:

P(t) = p(t,t) = (1-t) p(0,t) + t p(t,1)

= (1-t) { (1-t) p(0,0) + t p(0,1) } + t { (1-t) p(0,1) + t p(1,1) } = (1-t) { (1-t) P0 + t P1 } + t { (1-t) P1 + t P2 }

= (1-t)2 P0 + (1-t)t P1 + t(1-t) P1 + t2 P2 = P0 (1-t)2 + 2 P1 (1-t)t + P2 t2

= P0 – 2P0 t + P0 t2 + 2P1 t – 2 P1 t2 + P2 t2 = (P2 – 2P1 + P0) t2 + (2P1 – 2 P0) t + P0

Dengan melakukan subtitusi P0, P1, dan P2 dengan (0, 0), (10, 10), dan (20, 0), maka didapat fungsi polinomial parametrik untuk kurva Bézier kuadratik sebagai berikut:

x(t) = 20 t

y(t) = -20 t2 + 20 t

di mana t adalah nilai pada parameter [0, 1].

Gambar 3.27 Kurva polinomial parametrik dengan persamaan x(t)=20t dan y(t)=-20t2+20t dapat dijadikan kurva Bézier dengan titik-titik kontrol (0,0), (10,10), dan (20,0).

Dari contoh di atas, terlihat jelas ada kaitan antara fungsi polinomial kurva dengan titik kontrol. Semua fungsi polinomial berderajat n, dapat dicari n+1 buah titik kontrol sedemikian hingga dari titik-titik kontrol ini dapat merepresentasikan kurva fungsi polinomial tersebut.

Lalu pertanyaannya sekarang adalah bagaimana mencari titik-titik kontrol suatu kurva polinomial berderajat n. Lagi, keindahan blossom akan ditampilkan di sini.

Dari persamaan parametrik:

x(t) = 20t

y(t) = -20t2 + 20t

dengan nilai t berada pada parameter [0, 1], akan kita temukan 3 titik kontrol untuk kurva Bézier. Gunakan contoh blossom yang sudah didefinisikan pada bab sebelumnya.

o Blossom ke 2 dari x(t) = 20t adalah:

Blm2(20t) = 2

) ( 20t1+t2

px(t1,t2) = 10(t1+t2)

o Blossom ke 2 dari y(t) = -20t2 + 20t adalah:

Blm2(-20t2 + 20t) =

2 ) ( ) 20 (

20 12 t1 t2 t

t + +

py(t1,t2) = 20(t1t2)+10(t1+t2)

di mana t1, t2 adalah nilai-nilai knot yang didefinisikan dalam vektor knot kurva

Selanjutnya, kita cukup melakukan subtitusi biasa untuk mendapatkan ketiga titik kontrolnya.

x1 = px(t1,t2) = px(0,0) = 10(0+0)= 0

y1 = py(t1,t2) = py(0,0) = 20(0x0)+10(0+0) = 0

x2 = px(t2,t3) = px(0,1) = 10(0+1)= 10

y2 = py(t2,t3) = py(0,1) = 20(0x1)+10(0+1) = 10

x3 = px(t3, t4) = px(1,1) = 10(1+1)= 20

y3 = py(t3, t4) = py(1,1) = 20(1x1)+10(1+1) = 0

Yang baru kita lakukan sebenarnya adalah mengubah (konversi) basis dari bentuk {t2, t, 1} ke dalam bentuk {(1-t)2, 2(1-t)t, t2}. Kita tahu bahwa {t2, t, 1} merupakan basis untuk semua himpunan polinomial berderajat 2. Dikatakan sebagai basis, karena semua bentuk polinomial berderajat 2 pasti dapat dibentuk melalui kombinasi linear dari {t2, t, 1}. Kemudian masing-masing anggotanya bersifat bebas linear, artinya tiap-tiap anggota tidak dapat diperoleh dari hasil kombinasi linear dengan anggota lainnya. Jadi himpunan { tn, tn-1, …, t, 1} merupakan salah satu basis untuk himpunan polinomial berderajat n. Dengan kata lain masih terdapat basis yang lain untuk himpunan polinomial tersebut.

Suatu polinomial P(t) =antn+an1tn1+...+a1t+a0 merupakan hasil kombinasi linear dari koefisen-koefisien an, an-1,…, a1, a0 dengan basis { tn, tn-1, …, t, 1}. Namun koefisen-koefisien an, an-1, …, a1, a0 kurang dapat memberikan informasi mengenai bentuk kurva yang kira-kira akan dibentuk. Karena itu, prinsip blossom dapat digunakan untuk melakukan konversi basis dari { tn, tn-1, …, t, 1} ke bentuk basis yang digunakan dalam fungsi polinomial kurva Bézier dan B-spline.

Basis untuk kurva Bézier dikenal dengan basis Bernstein. Contoh basis Bernstein yang sudah digunakan untuk kurva Bézier di atas adalah {(1-t)2, 2(1-t)t, t2}.

Basis Bernstein secara lengkap adalah [GOLD93]:

dengan (nk)adalah hasil kombinasi ke k dari n unsur, dan a,b adalah nilai knot untuk kurva Bézier ([a,…,a,b,…,b]) dengan a < b. Karena sejak pertama kita sudah terbiasa dengan a = 0 dan b = 1, maka basis Bernstein untuk kurva Bézier dapat disederhanakan menjadi:

Lalu untuk apa kita melakukan konversi dari basis {t2, t, 1} ke dalam bentuk basis Bernstein ({(1-t)2, 2(1-t)t, t2})? Mendapatkan titik kontrol kurva tentunya. Dengan melakukan konversi ke basis Bernstein, maka koefisien dari polinomial ini merupakan titik kontrol kurva Bézier, suatu hal penting yang dapat memberikan informasi mengenai kurva yang akan dibentuk.

Blossom juga dapat digunakan untuk mengubah basis suatu polinomial sembarang ke dalam bentuk basis kurva B-spline. Bab ini akan ditutup dengan contoh terakhir berikut.

Misal, x(t) = t3 – 3t2 + 6t – 1 dan y(t) = -t3 +6t2 – 3t + 1 adalah suatu sembarang kurva yang didefinisikan pada parameter [0,1].

Gambar 3.28 Kurva polinomial parametrik x(t) = t3 – 3t2 + 6t – 1 dan y(t) = -t3 +6t2 – 3t + 1, dengan t berada pada parameter [0,1].

Kita akan mencari titik kurva B-spline kubik seragam untuk kurva tersebut. Karena kubik seragam, maka kita tentukan 6 buah knot yakni [-2, -1, 0, 1, 2, 3]. Dengan vektor knot tersebut berarti kurva B-spline yang dibentuk akan didefinisikan pada parameter [0,1].

Langkah yang perlu dilakukan pertama kali adalah mencari blossom dari persamaan polinomial tersebut.

Selanjutnya kita hanya melakukan subtitusi biasa untuk mendapatkan titik-titik kontrol kurva tersebut.

x4 = px(t4,t5,t6) = px(1,2,3)

= (1)(2)(3)((1)(2)+(2)(3)+(1)(3))+2((1)+(2)+(3))1 = 6 y4 = py(t4,t5,t6) = py (1,2,3)

= ((1)(2)(3))+2((1)(2)+(2)(3)+(1)(3))((1)+(2)+(3))+1 = 11

Dan inilah hasil kurva B-spline dengan keempat titik kontrol di atas dan vektor knot [-2,-1,0,1,2,3].

Gambar 3.29 Kurva polinomial parametrik x(t) = t3 – 3t2 + 6t – 1 dan y(t) = -t3 +6t2 – 3t + 1, dengan t berada pada parameter [0,1] direpresentasikan dari titik kontrol kurva B-spline.

Contoh terakhir ini telah memperlihatkan keindahan blossom dan kaitannya dengan kurva B-spline. Contoh tadi memperlihatkan pencarian 4 titik kontrol yang merepresentasikan kurva yang diharapkan. Misalkan kita ingin mendapatkan 5 titik kontrol untuk kurva B-spline tersebut, yang kita lakukan adalah mencari blossom ke 4 dari persamaan polinomial kurvanya. Dengan kata lain, berapapun titik kontrol yang kita inginkan untuk merepresentasikan kurva tersebut dapat dengan mudah dicari dari penerapan prinsip blossom.

BAB 4 KARAKTERISTIK KURVA B-SPLINE

4.1 Karateristik Utama

Kurva B-spline memiliki beberapa karakteristik penting yang menarik untuk diketahui. Karakteristik ini sudah dibahas pada [TONY02].

Karakteristik yang pertama adalah presisi linear. Maksudnya adalah jika titik-titik kontrol berada pada satu garis lurus maka kurva yang terbentuk juga berada pada garis tersebut. Dengan kata lain, garis lurus dengan mudah dapat direpresentasikan oleh kurva B-spline.

Gambar 4.1 Sebuah garis lurus yang digambarkan pada kurva B-spline kubik dengan cara meletakkan titik kontrolnya pada satu garis

Karakteristik yang kedua adalah mengenai properti convex hull. Kurva yang dihasilkan akan berada dalam convex hull dari poligon kontrolnya. Convex hull dapat dibayangkan sebagai berikut, misalkan titik-titik kontrol adalah paku-paku yang ditancapkan, kemudian kita rentangkan karet gelang sehingga semua paku berada dalam karet tersebut dan kita lepaskan. Hasilnya adalah karet gelang tersebut akan mengelilingi paku-paku yang terluar. Daerah dalam karet gelang inilah yang dimaksud dengan convex hull. Lihat contoh gambar berikut:

Gambar 4.2 Convex hull dari suatu kurva B-spline

Gambar 4.3 Contoh convex hull dari tiap segmen. Poligon P0,P1,P3,P2 merupakan convex hull segmen pertama, poligon P1,P3,P4,P2 merupakan convex hull segmen kedua, poligon P2,P3,P5,P4 merupakan convex hull segmen ketiga, poligon P3,P6,P5,P4 merupakan convex hull segmen keempat, dan poligon P4,P6,P7,P5 merupakan convex hull segmen kelima.

Karakteristik ini berguna bagi seorang desainer untuk mengetahui dengan tepat di mana kurva akan terbentuk[WALKER03].

Karakteristik ketiga adalah variation diminishing. Artinya adalah jumlah perpotongan kurva dengan suatu sembarang garis lurus tidak akan melebihi jumlah perpotongan garis tersebut dengan poligon kontrolnya. Lihat contoh berikut.

(a) (b)

Gambar 4.4 Karakteristik variation diminishing. (a) Kurva spline yang mungkin. (b) Kurva B-spline yang tidak mungkin.

Karakteristik variation diminishing mengatakan bahwa kurva tidak mungkin berosilasi (bergelombang) melebihi jumlah osilasi poligon kontrolnya.

Karakteristik terakhir yang sangat menarik adalah affine invariance. Maksudnya adalah apabila kita ingin melakukan transformasi affine terhadap kurva, kita cukup melakukan transformasi terhadap titik-titik kontrolnya. Yang dikategorikan sebagai transformasi affine adalah translasi (pergeseran), rotasi (pemutaran), refleksi (pencerminan), dan dilatasi (pembesaran).

Dalam dokumen BAB 2 REPRESENTASI KURVA (Halaman 31-40)

Dokumen terkait