• Tidak ada hasil yang ditemukan

BAB 2 REPRESENTASI KURVA

N/A
N/A
Protected

Academic year: 2022

Membagikan "BAB 2 REPRESENTASI KURVA"

Copied!
92
0
0

Teks penuh

(1)

BAB 2 REPRESENTASI KURVA

2.1 Kurva Parametrik vs Non-Parametrik

Kurva dapat direpresentasikan sebagai kumpulan titik-titik persamaan berbentuk non-parametrik ataupun parametrik. Persamaan ini menggunakan dua koordinat (x dan y) untuk kurva bidang (2D) dan tiga koordinat (x,y, dan z) untuk kurva ruang (3D).

Persamaan kurva pada bidang non-parametrik secara umum adalah:

• Kurva eksplisit Fungsi : y= f(x) Contoh:

- Persamaan garis lurus: y= x3 +1 - Persamaan parabola: y= x2

Kesulitan yang ditemui dari persamaan ini adalah [FOLEY90]:

1. Tidak mungkin mendapatkan lebih dari satu nilai y untuk setiap satu nilai x. Dengan demikian kurva berbentuk lingkaran dan elipse harus direpresentasikan dengan beberapa segmen kurva.

2. Kurva hasil persamaan ini tidak mudah untuk dilakukan rotasi.

3. Sulit merepresentasikan kurva dengan tangen vertikal karena kemiringannya yang tak terhingga.

• Kurva implisit Fungsi : f(x,y)=0 Contoh:

- Persamaan lingkaran: x2+ y2 −1=0 - Persamaan elipse: 1 0

2

2 + y − =

x

(2)

Persamaan ini memang dapat mengatasi masalah nilai tunggal y untuk setiap satu nilai x, seperti yang dialami persamaan kurva eksplisit. Namun kesulitan akan muncul justru apabila kita hanya memerlukan nilai tunggal y.

Bayangkan bagaimana menggambar setengah lingkaran dengan menggunakan persamaan implisit. Kemudian, apabila kita ingin menggabungkan dua segmen kurva implisit menjadi satu, maka sulit untuk menentukan apakah kedua arah tangen kurva tersebut bertemu pada titik gabungnya. Kontinuitas tangen merupakan hal kritikal dalam berbagai aplikasi.

Persamaan kurva pada bidang parametrik secara umum adalah:

x= f(t), y=g(t)

dengan t adalah suatu parameter independent dalam suatu interval tertentu ([t1,t2]).

contoh:

- Persamaan garis: x(t)=2t+7, y(t)=4t+11 dengan 0≤ t≤1

- Persamaan lingkaran kuadran I: 2 2

2

1 ) 2 ( 1 ,

) 1

( t

t t t y t t

x = +

+

= −

dengan 0≤ t≤1

Representasi dengan menggunakan persamaan parametrik mengatasi masalah yang dihadapi bentuk eksplisit maupun implisit. Karena itulah kurva parametrik lebih umum digunakan dalam CAGD.

Namun dipandang dari sudut pandang lain, baik representasi parametrik maupun non-parametrik memiliki keunggulan dan kelemahan masing-masing. Misalnya pada representasi non-parametrik, kita dapat dengan mudah mengetahui apakah suatu titik (x,y) terletak pada kurva atau tidak. Sedangkan pada representasi parametrik, hal ini menjadi sesuatu yang sulit. Jadi kita tidak dapat mengatakan bahwa salah satu dari representasi parametrik maupun non-parametrik adalah yang terbaik. Kedua representasi ini berguna dalam aplikasi pada grafika komputer.

(3)

Untuk kurva ruang, persamaannya sama dengan di atas, hanya saja kita perlu menambahkan satu koordinat z. Dengan demikian titik-titik kurva terdiri atas koordinat x, y, dan z.

2.2 Kurva Polinomial

Representasi yang umumnya digunakan adalah parametrik. Diharapkan adanya suatu fungsi yang perhitungannya sederhana namun dapat menggambarkan berbagai variasi kurva. Fungsi polinomial dikatakan cukup memenuhi kriteria ini, karena itu fungsi polinomial banyak digunakan sampai saat ini. Bentuk umum fungsi polinomial adalah sebagai berikut:

=

= n

i iti

a t

f

0

) (

= a0 +a1t+a2t2 +...+antn di mana n adalah derajat polinomial tersebut.

Berbagai variasi kurva dapat disajikan tergantung pada derajat polinomial yang digunakan. Misalnya, polinomial derajat satu (linear) hanya dapat menggambarkan garis lurus. Polinomial derajat dua (kuadratik) dapat menggambarkan parabola.

Fungsi ini belum memiliki titik belok (point of inflection), suatu titik di mana kurva berubah dari cembung ke cekung atau sebaliknya. Namun titik ini dapat diperoleh dengan menggabungkan beberapa polinomial derajat dua menjadi satu kurva utuh. Memang kurva yang dibahas selanjutnya adalah kurva yang merupakan hasil gabungan polinomial-polinomial berderajat n. Kurva ini dikenal dengan kurva spline. Kurva spline dapat didefinisikan sebagai gabungan potongan-potongan polinomial (piecewise polynomial function) yang didefinisikan sepanjang interval tertentu. Contoh kurva spline:

11 4 ) ( , 7 2 )

(t = t+ y t = t+

x 0≤ t≤1

9 5 )

( , 1 7 )

(t =t2 + t+ y t =t2 + t+

x 1≤ t≤2

(4)

Polinomial derajat tiga (kubik) adalah polinomial yang dapat dikatakan sebagai standar dalam penyajian kurva. Karena polinomial ini cukup fleksibel dan mampu merepresentasikan bermacam-macam bentuk kurva. Semakin tinggi suatu derajat polinomial, memang semakin baik hasil gambar yang direpresentasikan, namun perhitungan yang dilakukan juga semakin besar dan rumit. Karena itulah, umumnya polinomial kubik yang digunakan dalam penyajian kurva.

Gambar 2.1 Contoh gambar kurva spline hasil gabungan 26 potongan polinomial kubik.

2.3 Kontinuitas

Walaupun polinomial sudah dikatakan cukup sederhana dan mudah digunakan merepresentasikan grafik, namun sulit menyajikan bentuk kurva yang diharapkan hanya dengan menggunakan satu fungsi polinomial untuk x= f(t) dan y= g(t). Yang biasa dilakukan adalah membagi bentuk kurva tersebut menjadi beberapa bagian yang kemudian disebut sebagai segmen kurva. Tiap segmen kurva didefinisikan dari polinomial terpisah yang berlaku pada suatu interval parameter, kemudian digabungkan menjadi satu membentuk suatu kurva polinomial utuh.

Dengan membagi ke dalam bentuk segmen-segmen kurva, maka objek grafik yang ingin digambar dapat direpresentasikan dengan polinomial berderajat rendah.

(5)

Karena adanya penggabungan segmen-segmen kurva polinomial kecil, tentunya kita harus memperhatikan kontinuitas dari fungsi polinomial tersebut. Supaya kurva hasil gabungan segmen-segmen tadi tersambung mulus dan tidak terputus, maka fungsi tersebut harus kontinu. Definisi kontinu secara mudah dapat dikatakan bila kurva dapat digambarkan tanpa mengangkat pensil dari kertas [TONY02].

Misalkan f(t) dan g(t) merupakan dua buah kurva polinomial kubik, f(a)adalah ujung kanan kurva f dan )g(b adalah ujung kiri kurva g . Jika f(a)= g(b), maka kita katakan kedua kurva ini memiliki kontinuitas C0 atau kontinu pada posisi. Jika

) ( ' ) (

' a g b

f = , kita katakan kedua kurva memiliki kontinuitas C1 atau kontinuitas tangen (velocity). Jika f ''(a)= g ''(b), kedua kurva memiliki kontinuitas C2 atau kontinuitas turunan kedua (acceleration). Secara umum kedua kurva yang bertemu di satu titik akan memiliki kontinuitas Cn, apabila nilainya sama sampai dengan turunan ke n.

Kurva dengan kontinuitas C2 akan lebih mulus daripada kurva dengan kontinuitas C1 dan kurva dengan kontinuitas C1 akan lebih mulus daripada kurva dengan kontinuitas C0. Kurva dengan kontinuitas C0 atau kontinu pada posisi hanya memperlihatkan bahwa kurva tersebut tersambung dan tidak terputus, namun tidak mulus. Kurva B-spline kubik yang akan dibahas pada bab berikutnya adalah kurva dengan kontinuitas C2.

Kontinuitas C adalah kontinuitas parametrik. Selain kontinuitas C terdapat suatu kontinuitas G yang dikenal dengan kontinuitas geometri. Kontinuitas G0 memiliki arti sama dengan C0 yakni kontinu pada posisi. Kontinuitas G1 adalah kontinuitas vektor tangen. Untuk mendapatkan kontinuitas C1 (kontinuitas tangen), kedua kurva harus memenuhi f'(a)=g'(b). Namun untuk mendapatkan kontinuitas G1 (kontinuitas vektor tangen) cukup dengan melihat arah f' a( ) dan g' b( ). Apabila kedua vektor arah ini sama (sejajar), maka kedua kurva yang tersambung dikatakan memiliki kontinuitas G1 (kontinuitas vektor tangen). Kontinuitas G2 adalah kontinuitas vektor curvature. Curvature adalah kelengkungan kurva pada suatu titik (Curvature sebuah garis lurus adalah nol). Kurva dapat dikatakan memiliki

(6)

formula mudah untuk kontinuitas G2 sebagai kontinuitas geometri pada titik temu jika dan hanya jika vektor f ''(a)−g ''(b) paralel dengan vektor tangen di titik temunya [SHENE]. Berikut ini adalah contoh gambar kurva yang memiliki kontinuitas C0, C1, C2, sekaligus G0, G1, G2.

Gambar 2.2 Kontinuitas pada kurva.

2.4 Titik Kontrol Kurva dan Vektor Knot

Kurva adalah bentuk primitif dari suatu objek grafik. Dari bentuk primitif ini, kita dapat membuat objek yang rumit dan kompleks. Dari pembahasan sebelumnya, kita telah mengetahui bahwa kurva di sini akan menggunakan persamaan polinomial.

Namun persamaan polinomial seperti x(t)=axt2 +bxt+cx , y(t)=ayt2 +byt+cy

tidak banyak berarti bagi seorang desainer yang ingin membuat representasi grafik dengan kurva tersebut. Sebagai contoh, perhatikan gambar 2.1, penulis mencoba menggambar “bebek” sederhana. Namun yang penulis lakukan bukanlah mencoba- coba mencari fungsi-fungsi polinomial kubik (x(t)=axt3+bxt2+cxt+dx ,y(t)=ayt3+byt2+cyt+dy) dan kemudian menggabungkannya hingga membentuk gambar ini.

(7)

Yang penulis lakukan adalah meletakkan titik-titik kontrol sedemikian rupa sehingga dari titik kontrol ini dapat diperoleh fungsi-fungsi polinomial yang membentuk “bebek” tersebut. Fungsi-fungsi polinomial tadi didefinisikan sepanjang interval yang ditentukan vektor knot. Jadi vektor knot berisi sekumpulan nilai yang akan menjadi batas interval parameter masing-masing segmen kurva polinomial. Bahkan penulis tidak perlu mengetahui persamaan-persamaan polinomial tersebut secara pastinya.

Setiap persamaan polinomial memiliki sejumlah titik kontrol. Dinamakan titik kontrol karena titik ini berkaitan dengan fungsi kurva. Kita dapat memanipulasi bentuk kurva secara bebas hanya dengan memanipulasi titik tersebut.

Gambar 2.3 Kurva dengan titik kontrol

Perhatikan gambar di atas. Dengan tiga titik kontrol (x1,y1), (x2,y2), dan (x3,y3), kita dapat membentuk satu segmen kurva polinomial kuadratik yang didefinisikan sepanjang interval tertentu. Jadi bagi seorang desainer, menyimpan tiga titik kontrol ini jauh lebih efisien daripada menyimpan fungsi polinomial untuk satu segmen kurva. Contoh yang umum digunakan CAD adalah kurva Bézier dan kurva B- spline. Penentuan titik kontrol dari suatu kurva polinomial dan penggambaran kurva polinomial dari sejumlah titik kontrol akan dibahas pada bab selanjutnya.

Ada beberapa cara untuk mendefinisikan kurva tertentu dengan menggunakan titik kontrol. Masing-masing dapat diklasifikasikan sebagai kurva hasil interpolasi atau approksimasi. Pada kasus interpolasi, kurva akan melewati semua titik kontrol yang diberikan. Sedangkan pada kasus approksimasi, kurva hanya perlu mendekati sekumpulan titik kontrol yang diberikan. Seberapa dekat antara kurva dan titik kontrol tergantung dari teknik approksimasi yang digunakan. Kurva B-spline

(8)

BAB 3 KURVA B-SPLINE DAN PRINSIP BLOSSOMING

Seperti yang sudah disinggung sebelumnya, adalah sulit merepresentasikan bentuk grafik yang kita inginkan hanya dengan menggunakan satu fungsi polinomial. Yang biasa dilakukan adalah menggabungkan beberapa segmen fungsi polinomial menjadi satu kurva utuh. Kurva utuh hasil gabungan ini dinamakan kurva spline. Kurva spline merupakan kumpulan segmen kurva polinomial yang terhubung membentuk satu kurva yang kontinu [SEDERBERG]. Salah satu contoh kurva spline adalah kurva B-spline, fokus utama dalam skripsi ini. Namun supaya lebih mudah dalam memahami kurva B-spline, terlebih dahulu dibahas kurva Bézier. Pembahasan kurva Bézier bertujuan untuk memberikan gambaran mengenai bagaimana kurva akan terbentuk dari sejumlah titik kontrol yang diberikan, dan juga sebaliknya, bagaimana setiap segmen kurva yang tersedia dapat ditemukan titik kontrolnya.

Pembahasan dalam skripsi ini menggunakan teknik blossom, suatu teknik yang dapat dikatakan mengenkapsulasi fungsi basis polinomial B-spline sesungguhnya. Sekedar memberikan gambaran, perhitungan persamaan kurva B-spline sesungguhnya didapat dari fungsi basis yang rekursif. Pada skripsi ini tidak lagi muncul fungsi-fungsi basis yang banyak menggunakan analisis matematik, melainkan pembahasan dilakukan melalui sudut pandang geometri. Sebelum mulai membahas kurva Bézier dan B-spline, terlebih dahulu kita bahas definisi blossom.

3.1 Definisi Blossom

Ide utama dalam blossoming adalah adanya korespondensi satu-satu antara polinomial univariate berderajat maksimal n dengan polinomial n-variate

simetrik berderajat satu untuk tiap variabelnya [RAMSHAW87].

Contohnya, polinomial berderajat tiga F(t)=4t3 +3t2−6t+5 , ekivalen dengan

(9)

suatu polinomial berderajat satu dengan tiga variabel 5

2 2 2 4

) , ,

(u v w = uvw+uv+uw+vwuvw+

f .

Blossom di sini hanyalah suatu istilah yang diperkenalkan oleh Ramshaw. Bersama dengan de Casteljau, mereka telah mengembangkan teori blossom. Lalu apakah blossom itu?

Kita mulai dengan P(u), polinomial univariate berderajat n. Untuk suatu bilangan bulat N ≥ n, maka blossom ke N dari polinomial P adalah [ROCK95]:

BlmN(P(u)) = p(u1, u2,…, uN) , sedemikian hingga:

™ P(u) = p(u,u,…,u)

Ini dikenal dengan properti diagonal.

Contoh: P(1) = p(1,1,1)

™ p(u1, u2,…, uN) = p(permutasi u1, u2,…, uN) Ini dinamakan properti simetrik.

Contoh: p(1,2,3) = p(1,3,2) = p(2,1,3)

™ p(…,as + bt, …) = a p(… , s, …) + b p(…, t, …) untuk a + b = 1 Ini adalah properti multiaffine.

Contoh: p(0,0,(1-t)0 + t1) = (1-t) p(0,0,0) + t p(0,0,1)

Ketiga properti di atas merupakan properti utama dari blossom suatu polinomial P.

Selain tiga properti di atas, terdapat satu lagi properti tambahan yang dikenal dengan istilah properti dual functional.

™ p(ui, ui+1, …, ui+n-1) = Titik Kontrol ke i

Properti dual functional ini mengaitkan titik kontrol kurva polinomial berderajat n dengan pelabelan blossom-nya.

Contoh: p(0,1,2) = (x0,y0); p(1,2,3) = (x1,y1)

(10)

Lihat contoh blossom berikut ini:

o Blossom ke 2 dari P(u) = u2 adalah:

Blm2(u2) = u1u2

o Blossom ke 3 dari P(u) = u3 adalah:

Blm3(u3) = u1u2u3

o Blossom ke 3 dari P(u) = u2 adalah:

Blm3(u2) =

3 u u

u1u2+ 2u3+ 1u3

o Blossom ke 3 dari P(u) = 2 + 3u – u2 + u3 adalah:

Blm3(2 + 3u – u2 + u3) = 1 2 3 1 2 2 3 1 3 1 2 3 3

) ) (

(

2 u u u u uu uu u

u u

u + + +

+ + +

3.2 Kurva Bézier

Kita membahas kurva Bézier lebih dahulu sebagai persiapan untuk lebih mudah memahami karakteristik kurva B-spline.

Kurva Bézier termasuk salah satu kurva polinomial berderajat n yang menggunakan titik kontrol untuk penggambarannya. Untuk dapat menghasilkan satu segmen kurva Bézier berderajat n, diperlukan n + 1 buah titik kontrol dan suatu vektor knot yang memiliki jumlah 2n buah knot. Vektor knot adalah sebuah barisan knot (nilai parameter yang menentukan interval parameter untuk tiap segmen kurva). Nilai dari knot-knot ini harus tidak turun (non-decreasing). Contoh vektor knot:

[0,0,0,1,1,1]

[0,1,2,3,3,4,5,5,5]

[0.5, 0.6, 0.7, 0.8, 0.9, 1.0]

Jumlah knot di dalam suatu vektor knot bergantung dari jumlah titik kontrol dan derajat kurva yang ingin direpresentasikan. Misalkan kita ingin menggambarkan satu segmen kurva Bézier berderajat 2 (kuadratik), maka yang harus kita sediakan adalah 3 buah titik kontrol, dan sebuah vektor knot yang berisi 4 buah knot. Vektor knot untuk satu segmen kurva Bézier berderajat n terdiri atas n buah a dan n buah b( [ a,...,a,b,...,b ] dengan a < b). Umumnya, vektor knot yang digunakan

(11)

untuk satu segmen kurva Bézier berderajat 2 adalah [0,0,1,1]. Untuk derajat 3 akan digunakan [0,0,0,1,1,1], kemudian untuk derajat 4 akan digunakan [0,0,0,0,1,1,1,1], dan begitu seterusnya hingga derajat n. Berikut ini akan diperlihatkan contoh penggambaran satu segmen kurva Bézier kuadratik dengan langkah-langkahnya sesuai dengan teknik blossom.

Pertama-tama tentukan 3 buah titik kontrol untuk kurva yang ingin digambar.

Sebagai contoh kita definisikan ketiga titik itu adalah (0,0), (10,10), dan (20,0).

Gambar 3.1 Contoh Titik Kontrol Kurva Bézier kuadratik

Kemudian kita tentukan vektor knot-nya. Vektor knot yang umum digunakan adalah [0,0,1,1]. Titik-titik kurva yang akan dihasilkan nantinya adalah titik yang dihitung pada interval parameter [0,1], yakni mulai dari u1 dan berakhir di u2

(asumsi: knot pertama adalah u0). Jadi interval parameter yang dipakai untuk satu segmen kurva adalah [un-1, un].

Setelah kita tentukan tiga titik kontrol P0, P1, P2 ( (0,0), (10,10), (20,0) ) berikut vektor knot-nya ( [0,0,1,1] ), yang perlu dilakukan adalah memberi label tiap-tiap titik kontrol sesuai dengan properti dual functional dari blossom.

(12)

Parameter argumen dari tiap-tiap label blossom diambil dari n buah knot, dimulai dari indeks titik kontrol. Contohnya, label untuk P0 adalah p(u0,u1), label untuk P1

adalah p(u1,u2), dan label untuk P2 adalah p(u2,u3). Secara umum, parameter argumen untuk label blossom tiap-tiap titik kontrol kurva berderajat n adalah:

Pi = p(ui, ui+1, … , ui+ n – 1)

Inilah yang dimaksud dengan properti dual functional dari definisi blossom di atas.

Nilai blossom dengan parameter argumen yang didapat dari vektor knot adalah titik kontrol kurva.

Yang akan kita lakukan sekarang adalah mencari titik-titik kurva yang dihasilkan dari ketiga titik kontrol yang sudah diberikan. Kumpulan dari titik-titik kurva ini nantinya akan membentuk satu segmen kurva Bézier kuadratik. Untuk menemukan titik-titik tersebut, perhatikan metode berikut.

Gambar 3.3 Pencarian Titik Kurva

Tiga label blossom paling bawah adalah ketiga titik kontrol mula-mula (P0, P1, P2).

Dari titik p(0,0) dan titik p(0,1) dapat dicari titik kontrol baru, kita beri label p(0,t).

Juga dari titik p(0,1) dan titik p(1,1) dapat pula dicari titik kontrol baru, kita beri label p(t,1). Terakhir, dari titik p(0,t) dan titik p(t,1) dapat didapatkan lagi titik kontrol baru dengan label p(t, t). Titik kontrol ini merupakan titik pada kurva itu sendiri. Ini sesuai dengan properti diagonal (properti blossom ke 1), bahwa p(t, t) = P(t), di mana P(t) adalah fungsi polinomial kurva sesungguhnya, yang tidak terlihat

(13)

t adalah nilai parameter yang berada pada interval [0,1], karena segmen kurva Bézier ini didefinisikan sepanjang interval tersebut.

Sekarang kita akan melihat bagaimana suatu titik kontrol baru dapat dicari dari dua titik kontrol sebelumnya. Lihat kembali gambar 3.3, pertama kali kita akan mencari titik kontrol baru ( p(0,t) ) dari titik p(0,0) dan p(0,1).

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

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

Perhitungan di atas dapat dilakukan karena adanya properti multiaffine (properti blossom ke 3). Titik p(0,t) di atas dikatakan hasil kombinasi affine dari titik p(0,0) dan titik p(0,1) dengan nilai bobot t dan (1-t). Maksud kombinasi affine secara mudah adalah kombinasi yang menghasilkan suatu titik yang terletak di antara kedua titik mula-mula dan segaris. Makna geometrinya sebagai berikut, apabila kita mengganti satu parameter pada blossom, dengan tetap membiarkan argumen lainnya tetap, maka nilai blossom ini akan menghasilkan garis lurus dengan kecepatan konstant [SEDERBERG].

Gambar 3.4 Hasil kombinasi affine

(14)

Dengan cara yang sama, kita juga dapat mencari titik kontrol baru ( p(t,1) ) dari titik p(0,1) dan p(1,1).

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

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

Dan untuk mencari titik kontrol terakhir yang sekaligus merupakan titik pada kurva itu sendiri:

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

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

Langkah terakhir dapat diperoleh karena adanya properti simetrik (properti blossom ke 2). Dengan demikian titik kurva dapat dicari melalui properti-properti sesuai dengan definisi blossom sebelumnya.

Gambar 3.5 Titik kurva Bézier pada parameter t

Untuk mendapatkan gambaran konkret kurva Bézier, mari kita coba lakukan praktek perhitungan sesungguhnya. Sebagai contoh, kita ingin mendapatkan titik kurva pada t = 0.5 ( nilai t yang dapat diambil adalah [0,1] ), maka perhitungan yang dilakukan adalah sebagai berikut:

(15)

p(0,t) = (1-t) p(0,0) + t p(0,1) p(0, 0.5) = (1-0.5) (0,0) + 0.5 (10,10) p(0, 0.5) = (5 , 5)

p(t,1) = (1-t) p(0,1) + t p(1,1) p(0.5, 1) = (1-0.5) (10,10) + 0.5 (20,0) p(0.5, 1) = (15 , 5)

p(t, t) = (1-t) p(0,t) + t p(1,t) p(0.5, 0.5) = (1-0.5) (5, 5) + 0.5 (15, 5) p(0.5, 0.5) = (10 , 5)

Gambar 3.6 Titik pada kurva di parameter t = 0.5

Apabila kita mengulang perhitungan di atas dengan memilih nilai-nilai parameternya adalah 0.1, 0.2, 0.3, 0.4, dan 0.5, maka titik-titik yang didapat sebagai berikut:

(16)

Gambar 3.7 Titik-titik pada kurva di parameter t = 0.1, 0.2, …, 0.5

Kita sudah dapat membayangkan segmen kurva Bézier yang akan terbentuk dari tiga titik kontrol di atas. Apabila kita memperkecil interval parameter t, maka titik- titik yang didapat dari setiap parameternya akan membentuk satu kurva yang halus.

Gambar 3.8 Kurva Bézier kuadratik

Pencarian titik kontrol baru dari titik kontrol mula-mula hingga mendapatkan titik- titik kurva Bézier di atas, merupakan suatu metode yang dikenal dengan algoritma de Casteljau.

(17)

Gambar 3.9 Algoritma de Casteljau untuk kurva Bézier kuadratik. Nilai-nilai pada dasar segitiga merupakan titik kontrol dasar. Nilai pada puncak segitiga adalah titik kurvanya. Nilai t berada pada

interval [0,1]

Pembahasan di atas menggunakan bentuk kuadratik bertujuan untuk memudahkan pemahaman akan konsep dasar kurva Bézier. Setelah memahami konsep dasarnya, kurva Bézier berderajat berapapun dapat kita kuasai dengan mudah. Misal kita ingin menggambarkan satu segmen kurva Bézier berderajat 3 (kubik), maka kita tentukan 4 titik kontrol P0, P1, P2, dan P3, dan kita definisikan vektor knot [0,0,0,1,1,1]. Selanjutnya kita terapkan algoritma de Casteljau untuk mencari titik kurva tersebut.

Gambar 3.10 Algoritma de Casteljau untuk kurva Bézier kubik. Tidak ada yang berbeda dengan kuadratik selain jumlah langkah yang diperlukan untuk mendapat titik kurva

(18)

Dengan mengikuti prosedur pembuatan kurva Bézier kuadratik, titik kurva Bézier kubik pada parameter t dapat diperoleh seperti pada contoh berikut.

(a) (b)

Gambar 3.11 (a) Titik pada kurva di parameter t. (b) Gambar hasil kurva Bézier kubik.

Perhitungan titik kontrol pada level pertama:

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

Perhitungan titik kontrol pada level kedua:

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

Perhitungan titik kontrol pada level ketiga yang sekaligus menjadikan titik ini sebagai titik pada kurva:

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

Demikianlah prosedur untuk membentuk satu segmen kurva Bézier berderajat n, dari n+1 buah titik kontrol dan vektor knot dengan 2n buah knot ( n buah a dan n buah b, dengan a < b ) dengan menggunakan prinsip blossoming.

(19)

Sekarang kita membahas bagaimana menggambar beberapa segmen kurva Bézier yang tersambung mulus (kontinu). Kita telah ketahui bahwa untuk menggambar suatu objek grafik yang diinginkan, tidak cukup dengan satu segmen kurva. Bila kita akan menggambar s buah segmen kurva Bézier berderajat n, maka yang perlu kita tentukan adalah sn + 1 buah titik kontrol dan (s+1)n buah knot. Contoh, kita ingin menggambar 2 segmen kurva Bézier kubik, maka kita tentukan (2)(3) + 1 = 7 buah titik kontrol dan (2+1)(3) = 9 buah knot (3 buah a, 3 buah b, dan 3 buah c, dengan a<b<c).

Gambar 3.12 Titik-titik kontrol untuk 2 segmen kurva Bézier kubik

Misalkan titik-titik kontrol itu adalah P0, P1, P2, P3, P4, P5, dan P6, kemudian vektor knot-nya adalah [0,0,0,1,1,1,2,2,2], maka segmen kurva pertama didapat dari 4 buah titik kontrol pertama (P0, P1, P2, dan P3) dan didefinisikan sepanjang interval [0,1] (yakni mulai dari u2 dan berakhir pada u3). Nilai parameter t berkisar pada interval [0,1] (0 ≤ t ≤ 1).

(20)

Gambar 3.13 Segmen kurva pertama didefinisikan pada interval parameter [0,1]

Segmen kurva kedua didapat dari 4 buah titik kontrol berikutnya dimulai dari titik kontrol terakhir segmen kurva sebelumnya (P3, P4, P5, dan P6). Segmen ini didefinisikan sepanjang interval [1,2] (yakni mulai dari u5 dan berakhir pada u6).

Gambar 3.14 Segmen kurva kedua didefinisikan pada interval parameter [1,2]

Perhatikan nilai parameter t untuk segmen kurva kedua di atas. Nilai t yang dimasukkan untuk perhitungan dalam algoritma de Casteljau harus berada dalam interval [0,1] sesuai dengan kombinasi affine yang diterapkan ( (1-t) p(ui,ui+1,ui+2)

(21)

+ t p(ui+1,ui+2,ui+3) ). Misalkan, bila kita akan mencari titik segmen kurva kedua pada nilai parameter 1.5, tentunya kita akan mencari nilai p(1.5, 1.5, 1.5).

p(1, 1, 1.5) = (1-t) p(1, 1, 1) + t p(1, 1, 2) p(1, 1.5, 2) = (1-t) p(1, 1, 2) + t p(1, 2, 2) p(1.5, 2, 2) = (1-t) p(1, 2, 2) + t p(2, 2, 2)

p(1, 1.5, 1.5) = (1-t) p(1, 1, 1.5) + t p(1, 1.5, 2) p(1.5, 1.5, 2) = (1-t) p(1, 1.5, 2) + t p(1.5, 2, 2)

p(1.5, 1.5, 1.5) = (1-t) p(1, 1.5, 1.5) + t p(1.5, 1.5, 2)

Nilai t yang dimasukkan untuk ( 1-t ) dan t di atas bukan 1.5. Karena t yang dimaksud di sini adalah nilai parameter lokal yang didefinisikan pada interval [0,1]. Jadi nilai 1.5 ini harus dipetakan dulu ke dalam interval [0, 1], setelah itu baru dimasukkan ke dalam perhitungan (1-t) dan t di atas. Memetakan suatu nilai t’

yang berada pada interval [t1, t2] ke dalam bentuk t yang berada pada interval [0,1], bukanlah hal yang sulit dilakukan.

t =

1 2

' 1

t t

t t

Jadi, nilai parameter lokal yang dimasukkan untuk (1-t) dan t bukan 1.5 melainkan 0.5, di dapat dari:

t = 1 2

1 5 . 1

= 0.5

Perhitungan yang sesuai dengan algoritma de Casteljau:

p(1, 1, 1.5) = (1- 0.5) p(1, 1, 1) + 0.5 p(1, 1, 2) p(1, 1.5, 2) = (1- 0.5) p(1, 1, 2) + 0.5 p(1, 2, 2) p(1.5, 2, 2) = (1- 0.5) p(1, 2, 2) + 0.5 p(2, 2, 2)

p(1, 1.5, 1.5) = (1- 0.5) p(1, 1, 1.5) + 0.5 p(1, 1.5, 2) p(1.5, 1.5, 2) = (1- 0.5) p(1, 1.5, 2) + 0.5 p(1.5, 2, 2)

p(1.5, 1.5, 1.5) = (1- 0.5) p(1, 1.5, 1.5) + 0.5 p(1.5, 1.5, 2)

(22)

Begitu pula jika misalnya kita akan membuat suatu segmen kurva kubik dengan vektor knot [0,0,0,2,2,2], maka nilai parameter lokal t untuk perhitungan (1-t) dan t, harus terlebih dahulu kita petakan dari interval [0,2] ke dalam interval [0,1].

Contohnya, kita akan mencari titik kurva pada nilai parameter 0.8, maka perhitungannya adalah sebagai berikut:

t = 2 0 0 8 . 0

= 0.4

p(0, 0, 0.8) = (1- 0.4) p(0, 0, 0) + 0.4 p(0, 0, 2) p(0, 0.8, 2) = (1- 0.4) p(0, 0, 2) + 0.4 p(0, 2, 2) p(0.8, 2, 2) = (1- 0.4) p(0, 2, 2) + 0.4 p(2, 2, 2)

p(0, 0.8, 0.8) = (1- 0.4) p(0, 0, 0.8) + 0.4 p(0, 0.8, 2) p(0.8, 0.8, 2) = (1- 0.4) p(0, 0.8, 2) + 0.4 p(0.8, 2, 2)

p(0.8, 0.8, 0.8) = (1- 0.4) p(0, 0.8, 0.8) + 0.4 p(0.8, 0.8, 2)

3.3 Kurva B-spline

Huruf B pada B-spline adalah basis. Karena inti dari fungsi polinomial B-spline adalah fungsi basis yang didefinisikan sepanjang interval parameter knot.

Sebenarnya kurva Bézier merupakan bentuk khusus dari kurva B-spline. Kurva B-spline merupakan suatu pendekatan umum untuk merepresentasikan gabungan potongan-potongan kurva polinomial, yang mengatasi kelemahan-kelemahan kurva Bézier [ZORIN02]. Perbandingan kedua kurva ini dapat dilihat pada bab berikutnya.

Untuk memulai menggambar satu segmen kurva B-spline berderajat n diperlukan n+1 buah titik kontrol dan 2n buah knot yang nilainya tidak turun (contohnya [0,1,2,3,4,5]). Segmen kurva ini didefinisikan sepanjang interval [un-1,un] (asumsi:

knot pertama adalah u0). Tidak seperti vektor knot pada kurva Bézier, vektor knot pada kurva B-spline bebas untuk pengaturan nilainya. Satu-satunya syarat yang

(23)

decreasing). Vektor knot ini akan mempengaruhi karakteristik kurva. Pada bab selanjutnya akan dibahas dampak pengaturan vektor knot. Untuk memudahkan pemahaman tentang kurva B-spline, vektor knot yang digunakan pada bab ini adalah vektor knot yang seragam. Vektor knot seragam memiliki arti interval tiap- tiap knot-nya sama. Contohnya:

[0,1,2,3,4,5]

[2,4,6,8,10,12]

[-0.5, 0.0, 0.5, 1.0, 1.5, 2.0]

Kurva B-spline yang umumnya digunakan dalam CAD adalah kurva B-spline berderajat 3 (kubik). Maka dari itu, kita menggunakan kurva B-spline kubik sebagai patokan untuk pembahasan dalam skripsi ini. Kita akan mencoba menggambar satu segmen kurva B-spline kubik, untuk itu kita tentukan 4 buah titik kontrol (P0, P1, P2, P3) dan vektor knot, misalnya [0,1,2,3,4,5].

Gambar 3.15 Titik kontrol untuk satu segmen kurva B-spline kubik.

Selanjutnya, kita mulai memberi label blossom pada tiap-tiap titik kontrol seperti yang telah dilakukan sebelumnya.

(24)

Gambar 3.16 Pemberian label blossom pada titik kontrol kurva B-spline kubik sesuai dengan vektor knot-nya ([0,1,2,3,4,5]).

Sekarang kita akan menggambar satu segmen kurva B-spline kubik yang didefinisikan pada interval [2,3]. Jika pada sebelumnya kita menggunakan algoritma de Casteljau untuk mendapatkan titik pada kurva Bézier, maka sekarang untuk mendapatkan titik pada kurva B-spline, kita menggunakan suatu algoritma yang dikenal dengan algoritma de Boor.

Gambar 3.17 Algoritma de Boor untuk kurva B-spline kubik. Nilai-nilai pada dasar segitiga merupakan titik kontrol dasar. Nilai pada puncak segitiga adalah titik kurvanya.

(25)

Algoritma de Boor merupakan bentuk umum dari algoritma de Casteljau. Ini berarti dengan menggunakan algoritma de Boor, titik-titik kurva Bézier juga dapat diperoleh. Tidak ada yang berbeda dengan algoritma de Casteljau dalam mencari titik kontrol baru. Titik kontrol baru ini biasanya disebut titik deBoor. Perhatikan contoh berikut ini.

p(u1,u2,t) = p(u1,u2,

0 3

3

u u

t u

u0 +

0 3

0

u u

u t

u3) (1)

=

0 3

3

u u

t u

p(u1,u2,u0) +

0 3

0

u u

u t

p(u1,u2,u3) (2)

=

0 3

3

u u

t u

p(u0,u1,u2) +

0 3

0

u u

u t

p(u1,u2,u3) (3)

Persamaan (2) merupakan hasil dari properti blossom ke 3 (multiaffine) dan persamaan (3) merupakan hasil dari properti blossom ke 2 (simetrik). Persamaan (1) didapat dari persamaan aljabar biasa, berikut ini akan diturunkan.

p(u1,u2,t) = p(u1,u2,

0 3

3

u u

t u

u0 +

0 3

0

u u

u t

u3)

= p(u1,u2,

0 3

0 0 3

u u

tu u u

+

0 3

3 0 3

u u

u u tu

)

= p(u1,u2,

0 3

0 3

u u

tu tu

)

= p(u1,u2,t)

Dengan cara yang sama, kita dapat mendapatkan titik-titik kontrol lainnya hingga sampai dengan p(t,t,t), yakni titik pada kurva B-spline itu sendiri. Ini sesuai dengan properti blossom ke 1 (diagonal) bahwa P(t) = p(t,t,t).

Algoritma de Boor dapat ditulis sebagai berikut:

1. Dari dua titik yang akan dicari titik kontrol barunya, ambil dua argumen label blossom yang berbeda pada kedua labelnya. Misalnya, dari dua titik p(u0,u1,u2) dan p(u1,u2,u3), yang berbeda argumennya adalah u3 dan u0.

(26)

2. Sedangkan untuk argumen lainnya yang sama, digunakan kembali untuk label titik kontrol yang baru ditambah dengan satu argumen t, sebagai hasil modifikasi antara argumen yang berbeda. Pada contoh langkah 1, karena u1 dan u2 sama, maka digunakan kembali untuk titik kontrol baru, yakni p(u1,u2,t).

3. Kedua argumen yang berbeda (u3 dan u0) akan digunakan untuk melakukan kombinasi affine dari kedua titik kontrol semula,

0 3

3

u u

t u

− untuk titik pertama

dan

0 3

0

u u

u t

untuk titik yang kedua.

4. Ulangi langkah 1 sampai langkah 3 untuk mencari titik kontrol lainnya, hingga mendapatkan titik pada kurva ( p(t,t,t) ). Perhatikan bahwa susunan argumen blossom boleh dibalik-balik, karena adanya properti simetrik

Sekarang kita menerapkan algoritma de Boor untuk mendapatkan titik kurva B- spline. Kembali ke contoh sebelumnya (gambar 3.16), setelah memberi label pada masing-masing titik kontrol, maka yang akan kita lakukan adalah mencari titik kurva di suatu parameter t (nilai t berada pada interval [2,3], karena kurva didefinisikan pada interval [un-1,un] ). Misalkan kita ingin mencari titik kurva di parameter t = 2.4, maka perhitungan yang dilakukan adalah sebagai berikut.

Pencarian titik-titik kontrol iterasi pertama:

p(1,2,t) =

0 3

3

− t p(0,1,2) +

0 3

0

t p(1,2,3)

p(1,2, 2.4) = 3

6 .

0 (0,0) +

3 4 .

2 (5,10) p(1,2, 2.4) = (4 , 8)

p(2,t,3) =

1 4 4

− t p(1,2,3) +

1 4

1

t p(2,3,4)

p(2, 2.4, 3) = 3

6 .

1 (5,10) +

3 4 .

1 (15,10) p(2, 2.4, 3) = (9.67 , 10)

(27)

p(t,3,4) =

2 5

5

− t p(2,3,4) +

2 5

2

t p(3,4,5)

p(2.4, 3,4) = 3

6 .

2 (15,10) +

3 4 .

0 (20,0) p(2.4, 3,4) = (15.67 , 8.67)

Gambar 3.18 Titik-titik kontrol yang didapat dari iterasi pertama algoritma de Boor pada parameter t = 2.4

Pencarian titik-titik kontrol iterasi kedua:

p(2,t,t) =

1 3 3

− t p(1,2,t) +

1 3

1

t p(2,t,3)

p(2,2.4, 2.4) = 2

6 .

0 (4, 8) +

2 4 .

1 (9.67, 10) p(2,2.4, 2.4) = (7.97, 9.4)

p(t,t,3) =

2 4

4

− t p(2,t,3) +

2 4

2

t p(t,3,4)

p(3.4, 3.4, 4) = 2

6 .

1 (9.67,10) +

2 4 .

0 (15.67, 8) p(3.4, 3.4, 4) = (10.74, 9.6)

(28)

Gambar 3.19 Titik-titik kontrol yang didapat dari iterasi kedua algoritma de Boor pada parameter t = 2.4

Terakhir, pencarian titik kontrol yang merupakan titik kurva itu sendiri:

p(t,t,t) =

2 3

3

− t p(2,t,t) +

2 3

2

t p(t,t,3)

p(2.4,2.4, 2.4) =

1 6 .

0 (7.97, 9.4) + 1

4 .

0 (10.74, 9.6) p(2.4,2.4, 2.4) = (9.08, 9.48)

Gambar 3.20 Titik kontrol yang merupakan titik kurva itu sendiri pada parameter t =2.4

Dengan cara yang sama, apabila kita mengevaluasi titik kurva pada nilai-nilai parameter t = 2.0, 2.1, 2.2, … , 3.0, maka hasil yang diperoleh sebagai berikut.

(29)

Gambar 3.21 Titik-titik pada kurva B-spline pada parameter t=2.0, 2.1, 2.2,…,3.0

Dan lagi, apabila kita mencari titik-titik kurva dengan lebih memperkecil nilai parameter t, maka terbentuklah satu segmen kurva B-spline kubik yang utuh.

Gambar 3.22 Gambar satu segmen kurva B-spline kubik seragam.

Contoh di atas menggambarkan satu segmen kurva B-spline kubik seragam. Lalu bagaimana bila kita ingin menggambar satu segmen kurva B-spline berderajat n?

Pada dasarnya tidak ada yang berbeda selain jumlah iterasi dalam mencari titik kurva. Untuk mencari titik pada kurva berderajat n, diperlukan sejumlah n kali iterasi hingga mendapatkan p(t,t,...,t) P(t)

n

3 = 2

1 . Gambar berikut memperlihatkan contoh masing-masing satu segmen kurva B-spline berderajat satu sampai derajat empat, dengan vektor knot seragam.

(30)

Gambar 3.23 Contoh gambar satu segmen kurva B-spline seragam berderajat 1, 2, 3, dan 4.

Kita sudah mengetahui bagaimana satu segmen kurva B-spline dapat tergambar dari titik kontrol yang disediakan. Sekarang saatnya kita mengetahui bagaimana proses penggabungan segmen-segmen kurva membentuk suatu kurva B-spline yang kontinu. Di sinilah letak istimewa kurva B-spline. Untuk menambahkan satu segmen kurva yang tersambung mulus, kita hanya perlu menambahkan satu titik kontrol dan satu buah knot. Di mana pun titik kontrol tambahan itu diletakkan, hasil kurva B-spline yang terbentuk akan tersambung mulus. Melihat hasil kurva yang tergambar sungguh merupakan hal yang mengagumkan.

(31)

Kesimpulan yang dapat ditarik adalah untuk membuat s buah segmen kurva B- spline berderajat n, kita memerlukan s+n buah titik kontrol dan 2n+s–1 buah knot.

Pada gambar 3.24, kita membuat 2 buah segmen kurva, sehingga perlu 5 buah titik kontrol dan 7 buah knot ([0,1,2,3,4,5,6]).

Segmen kurva pertama didefinisikan pada interval [2,3], menggunakan 4 buah titik kontrol pertama (P0,P1,P2,P3) dan 6 nilai knot pertama ([0,1,2,3,4,5]). Segmen kurva kedua didefinisikan pada interval [3,4], menggunakan 4 buah titik kontrol berikutnya (P1,P2,P3,P4) dan 6 nilai knot berikutnya ([1,2,3,4,5,6]). Secara umum, segmen kurva ke s, didefinisikan pada interval [un+s-2, un+s-1], menggunakan n+1 buah titik kontrol dimulai dari Ps-1 dan 2n nilai knot dimulai dari us-1.

Gambar 3.25 Contoh silhoutte mobil yang direpresentasikan kurva B-spline kubik seragam. Kurva B-spline telah menjadi bagian penting dalam CAD.

3.4 Konversi Basis Polinomial dengan Prinsip Blossom

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]).

(32)

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].

(33)

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

(34)

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}.

(35)

Basis Bernstein secara lengkap adalah [GOLD93]:

n a k

b t b a t t

B n

k n k nk

kn , 0,...,

) (

) ( ) )(

) (

( =

=

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:

n k t t t

Bkn()=(nk)()k(1 )nk, =0,...,

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].

(36)

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.

o Blossom ke 3 dari x(t) = t3 – 3t2 + 6t – 1 adalah:

Blm3(t3 – 3t2 + 6t – 1) = 1

3 ) (

6 3

) (

3 1 2 23 13 1 2 3

3 2

1 + +

+ +

t t +t t t t t t t

t t t

px(t1,t2, t3) = t1t2t3(t1t2+t2t3+t1t3)+2(t1+t2+t3)1 o Blossom ke 3 dari y(t) = -t3 +6t2 – 3t + 1 adalah:

Blm3(-t3 +6t2 – 3t + 1) = 1

3 ) (

3 3

) (

) 6

(1 23 12 2 3 13 1+ 2+ 3 + +

+ +

tt t t tt t t t

t t t

py(t1,t2, t3) = (t1t2t3)+2(t1t2+t2t3+t1t3)(t1+t2+t3)+1

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

x1 = px(t1,t2,t3) = px(-2,-1,0)

= (2)(1)(0)((2)(1)+(1)(0)+(2)(0))+2((2)+(1)+(0))1 = -9 y1 = py(t1,t2,t3) = py (-2,-1,0)

= ((2)(1)(0))+2((2)(1)+(1)(0)+(2)(0))((2)+(1)+(0))+1 = 8

x2 = px(t2,t3,t4) = px(-1,0,1)

= (1)(0)(1)((1)(0)+(0)(1)+(1)(1))+2((1)+(0)+(1))1 = 0 y2 = py(t2,t3,t4) = py (-1,0,1)

= ((1)(0)(1))+2((1)(0)+(0)(1)+(1)(1))((1)+(0)+(1))+1 = -1

x3 = px(t3,t4,t5) = px(0,1,2)

= (0)(1)(2)((0)(1)+(1)(2)+(0)(2))+2((0)+(1)+(2))1 = 3 y3 = py(t3,t4,t5) = py (0,1,2)

Gambar

Gambar 2.1 Contoh gambar kurva spline hasil gabungan 26 potongan polinomial kubik.
Gambar 3.10 Algoritma de Casteljau untuk kurva Bézier kubik. Tidak ada yang berbeda dengan  kuadratik selain jumlah langkah yang diperlukan untuk mendapat titik kurva
Gambar 3.11 (a) Titik pada kurva di parameter t. (b) Gambar hasil kurva Bézier kubik.
Gambar 3.16 Pemberian label blossom pada titik kontrol kurva B-spline kubik  sesuai dengan  vektor knot-nya ([0,1,2,3,4,5])
+7

Referensi

Dokumen terkait

Pemberian air rebusan kunyit pada ayam broiler penelitian ini bertujuan untuk menurunkan jumlah bakteri patogen dalam usus halus ayam broiler karena kunyit mengandung

Makna benda yang tidak bergerak dalam Pasal 16 ayat (1) dalam undang-undang ini adalah meliputi; pertama hak atas tanah sesui dengan ketentuan peraturan perundang- undangan

Lebih dari itu, peneliti menggunakan keempat evaluasi tersebut karena sesuai dengan tujuan penelitian yang telah peneliti paparkan di Bab I, dimana peneliti akan

Interaksi yang terjadi dalam lingkungan keluarga, seperti antara anak dan orang tua merupakan salah satu bentuk dari interaksi antarindividu, dimana terjadi hubungan timbal

1. Kami tidak menulis di papan dialog tapi kami memberikan salinan dari dialog untuk mahasiswa masing-masing untuk membuatnya lebih mudah untuk mempraktekkan dialog.

Gambar 2 memperlihatkan pola difraksi sinar-x sudut pendek 2θ = 31,5-37,5 setelah mechanical milling untuk komposisi penambahan aluminium, terlihat terjadi

Sebagai alat bantu dalam pembelajaran, komputer memiliki beberapa keunggulan, diantaranya: (1) memungkinkan siswa untuk belajar sesuai dengan kemampuan dan kecepatan

Dan janganlah anda bertanya, sastra kebaikan/kebajikan pada sang pendeta, pada waktu Purwani, pahalanya tidak baik, akan disusupi oleh Sang Kala-kali pada