35
3.2.1 Kurva Parametrik Catmull-Rom Splines
Kurva secara luas digunakan dalam setiap aspek komputer grafis, terutama splines yang merupakan sepenggal polinomial kurva
parametrik. Splines populer dalam Computer-Aided Design CAD karena kesederhanaan konstruksi, kemudahan dan akurasi evaluasi,
serta kapasitas untuk menentukan bentuk kompleks permukaan. Catmull- Rom C-R splines adalah keluarga interpolasi kubik
kurva yang dirumuskan sedemikian rupa sehingga garis singgung disetiap titik kontrol dihitung dengan menggunakan titik kontrol
sebelumnya dan berikutnya pada spline.
Gambar 3.12 Garis Singgung Kurva Catmull-Rom spline
Catmull- Rom splines memiliki kontinuitas C
1
, kontrol lokal, dan interpolasi titik kontrol, tetapi tidak terletak dalam titik kontrol.
Berikut adalah rumusan interpolasinya:
Penulis menggunakan jenis spline di permukaan interaktif karena kemampuannya untuk setiap interpolasi titik kontrol. Dalam
operasi manipulasi titik kontrol, tidak dapat menerapkan modifikasi bentuk spline yang mempengaruhi lebih dari sebuah
lingkungan kecil di spline dan rentang antara tetangga titik kontrol.
m i
n i
i n
i n
t P
t N
t C
1 ,...,
1
Universitas Sumatera Utara
36
Bisa dilihat pada Gambar 3.13 bahwa Catmull-Rom splines tidak interpolasi titik kontrol pertama dan terakhir.
V = P
1
V
1
= P
1
+ P
2
– P V
2
= P
2
+ P
3
– P
1
V
3
= P
2
Gambar 3.13 Interpolasi Kurva Catmull- Rom spline
Kemampuan C-R spline untuk interpolasi titik kontrol adalah fitur penting, yang memungkinkan untuk secara akurat menerjemahkan
input pengguna ke dalam matematika representasi.
Gambar 3.14 Model interpolasi Catmull- Rom splines
Pendekatan pertama yang dilakukan untuk menyelesaikan masalah perpindahan kontrol penyebaran titik dalam jendela aktif,
menetapkan arah perpindahan yang sama untuk semua titik kontrol dalam jendela. Besarnya perpindahan monoton menurun dari titik
kontrol yang dimodifikasi untuk batas-batas jendela.
Drop off
adalah fungsi yang halus dan harus pergi ke nol pada batas-batas untuk menghindari diskontinuitas.
2 2
12
p t
C
2 2
23
p t
C
2
p
2
p
2
p
?
2
p
2
p
?
p
1
p
2
p
3
p
4
p
t t
2
t t
2
t t
1 2
t t
2
t t
3
t t
1
t t
t t
3
t t
t t
3
1
t t
t t
4
t t
t t
2
1
t t
t t
3 2
t t
t t
4
Universitas Sumatera Utara
37
Penulis telah menguji beberapa fungsi tersebut dan menemukan tiga yang menyediakan transisi mulus ya ng diinginkan Persamaan
1, 2, dan 3, yaitu: Linear: 1
Gaussian: 2
Sinusoidial: 3
Persamaan linier, gaussian dan sinusoidial memiliki semua penurunan dalam rentang 1-0. Persamaan 2 menggunakan fungsi
kedua
f d
untuk memastikan kondisi batas yang tepat, karena Gaussian tidak pergi ke nol dalam rentang terbatas.
dengan ketentuan
d
adalah jarak melengkung ke atas ke pusat jendela, yaitu titik kontrol yang dimodifikasi oleh pengguna, dan W
adalah sebuah ukuran jendela yang ditetapkan untuk setiap sisi jendela yang aktif, baik W
R
atau W
L
.
f
adalah fungsi yang menjamin persamaan seluruh pergi ke nol.
Parameter
t
eksponen dari kosinus dalam Persamaan 3. Pengaturan parameter untuk sesuatu selain 1 mengubah bentuk
kurva dalam jendela aktif. Seperti yang terlihat pada Gambar 3.15, nilai
t
kurang dari 1 mulai persegi dari bagian dimodifikasi kurva.
Universitas Sumatera Utara
38
= 0,1 = 0,25 = 0,5 = 0,75 a
= 0,1 = 0,25 = 0,5 = 0,75 b
Gambar 3.15 a hasil perubahan
dalam Persamaan 1, b hasil dari perubahan
dalam Persamaan 3
Untuk memberikan fleksibilitas yang lebih besar, kontrol dan ekspresif, dalam hal ini telah dikembangkan teknik yang
memperluas dan generalisasi hasil modifikasi satu titik kontrol C-R spline. Teknik yang memungkinkan pengguna untuk menentukan
dan berbagai jenis pengaruh yang manipulasi dari sebuah titik kendali tunggal dapat menghasilkan pada kurva C-R spline,
sehingga menciptakan kemampuan pengeditan kurva fleksibel dan kurva fungsi lokal.
Gambar 3.16 Fungsi lokal kontrol Catmull-Rom splines
Pengeditan fungsi lokal memberikan kontrol pengguna lebih besar atas bentuk spline ketika bergerak dari satu titik kontrol. Hal ini
memungkinkan pengguna untuk meningkatkan densitas dari titik
12
t C
23
t C
012
t P
123
t P
234
t P
01
t P
12
t P
23
t P
34
t P
p
1
p
2
p
3
p
4
p
t t
2
1
t t
t t
3 2
t t
t t
2
t t
1
t t
t t
2
1
t t
t t
3 2
t t
t t
4 3
t t
2
t t
t t
4
1
t t
t t
3
t t
Universitas Sumatera Utara
39
kontrol di mana detail lebih dibutuhkan, dan membuat bagian dari kurva lebih terkendali. Namun, karena lokalitas Catmull- Rom
splines, perubahan apapun pada satu titik kontrol hanya perubahan porsi kurva antara titik kontrol dan tetangganya titik kontrol.
Elber dan Gotsman
2007, memperpanjang pendekatan non- seragam-B-spline dan menyediakan mekanisme untuk lokal
perbaikan dan manipulasi kurva adaptif lokal. Namun, metode ini menggunakan kuadrat-terkecil pendekatan untuk dekomposisi
multi-resolusi dari kurva bebas-bentuk dan tidak mampu menyediakan kontinu resolusi kontrol. Kemudian bekerja
menyajikan sebuah skema yang menggabungkan kontrol multi- resolusi dengan kendala linier ke dalam satu kerangka, yang
memungkinkan seseorang untuk melakukan manipulasi multi- resolusi kurva B-spline tidak seragam.
Kontrol multi-resolusi dikombinasikan dengan kendala linier mengatur geometri yang tepat, dan menciptakan kerangka kerja
untuk mengedit interaktif kurva B-spline tidak seragam. Untuk
menambahkan satu segmen kurva yang tersambung mulus, 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.
Gambar 3.17 Dua segmen kurva B-spline kubik seragam
Universitas Sumatera Utara
40
Kurva ini cocok untuk set baru titik kontrol setelah setiap langkah mengedit, dan pengguna disediakan dengan langsung umpan balik
dari keseluruhan bentuk kurva ketika mengedit. Jumlah titik kontrol dalam jendela aktif dapat diubah oleh pengguna untuk
menyediakan lebih rinci, dan lebih tinggi resolusi mengedit. Jumlah titik kontrol dapat dikurangi dalam jendela.
Gerakan dari titik kontrol dalam jendela aktif dapat digambarkan melalui serangkaian skema yang memodifikasi semua kontrol poin
lainnya dalam jendela sebagai fungsi dari perpindahan dari titik kontrol yang dipilih. Dua alternatif ide: interpolasi perpindahan
yang dipilih titik kontrol dalam jendela aktif, dan interpolasi vektor pergeseran dengan vektor ortogonal untuk kurva.
3.3 Pemrograman GDI + Graphic Device Interface