• Tidak ada hasil yang ditemukan

Studi Mengenai Kurva Parametrik Catmull-Rom Splines

N/A
N/A
Protected

Academic year: 2016

Membagikan "Studi Mengenai Kurva Parametrik Catmull-Rom Splines"

Copied!
64
0
0

Teks penuh

(1)

SKRIP SI

AZWAR SYARIF 090823006

PROGRAM STUDI SARJANA MATEMATIKA DEP ARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENG ETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN

(2)

STUDI MENGENAI KURVA PARAMETRIK CATMULL-ROM SPLINES

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains

AZWAR SYARIF 090823006

PROGRAM STUDI SARJANA MATEMATIKA DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

(3)

PERSETUJUAN

Judul : STUDI MENGENAI KURVA PARAMETRIK

CATMULL-ROM SPLINES

Kategori : SKRIPSI

Nama : AZWAR SYARIF

Nomor Induk Mahasiswa : 090823006

Program Studi : SARJANA (S1) MATEMATIKA

Departemen : MATEMATIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Juni 2011

Komisi Pembimbing :

Pembimbing II Pembimbing I

Drs. Marwan Harahap, M.Eng Drs. Bambang Irawan, M.Sc NIP 19461225 197403 1 001 NIP 19470421 197603 1 001

Diketahui Oleh:

Departemen Matematika FMIPA USU Ketua,

(4)

PERNYATAAN

STUDI MENGENAI KURVA PARAMETRIK CATMULL-ROM SPLINES

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa

kutipan dan ringkasan yang masing- masing disebutkan sumbernya.

Medan, Juni 2011

(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Pemurah dan Maha Penyayang, dengan limpah kurnia-Nya kertas kajian ini berhasil diselesaikan dalam waktu yang telah ditetapkan.

(6)

ABSTRAK

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 suatu permukaan. Bentuk permukaan objek nyata dapat direpresentasikan di layar komputer dengan menggunakan kurva parametrik. Teknik ini menggunakan fungsi parametrik, di mana bentuk dari kurva parametrik ini akan bergantung pada nilai parameter pembentuk kurvanya. Fungsi parametrik Kubik Bezier, dan B-Splines adalah beberapa fungsi parametrik yang dapat digunakan untuk merepresentasikan objek. Dalam penelitian ini, penulis menggunakan fungsi parametrik Catmull-Rom spline.

(7)

STUDY ON PARAMETRIC CURVE CATMULL-ROM SPLINES

ABSTRACT

The curves are widely used in every aspect of computer graphics, especially a piece of polynomial splines are parametric curves. Splines popular in Computer Aided Design (CAD) because of the simplicity of construction, ease and accuracy evaluation, and capacity to determine the shape of a surface complex. Real object surface shape can be represented on a computer screen by using parametric curves. This technique uses parametric functions, where this form of parametric curves will depend on the parameter value forming the curve. Cubic Bezier parametric function, and B-Splines are parametric functions which can be used to represent objects. In this study, the authors use a parametric function of Catmull-Rom spline.

(8)

DAFTAR ISI

2.1.1 Pemanfaatan Grafika Komputer 6

2.1 Kurva 8

3.1.Catmull- Rom Splines 19

3.2.Kurva Parametrik 20

3.2.1 Kurva Parametrik Catmull- Rom Splines 21 3.3 Pemrograman GDI+ (Grafik Device Interface) 27

3.3.1 Area Menggambar 29

3.3.2 Sistem Koordinat 31

3.3.3 Menggambar Garis Pada Form 32

(9)

BAB 4. KESIMPULAN DAN SARAN 44

4.1 Kesimpulan 44

4.2 Saran 45

(10)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Kerangka Grafik Komputer Interatif 7 Gambar 2.2 Elemen-Elemen Pembentuk Grafik 8 Gambar 2.3 Kurva Polinomial derajat satu 11 Gambar 2.4 Kurva Polinomial derajat dua 11

Gambar 2.5 Kurva Polinomial derajat tiga 12

Gambar 2.6 Koordinat Kurva Spline 13

Gambar 2.7 Kontinuitas Pada Kurva 15

Gambar 2.8 Kurva Dengan Titik Kontrol 16

Gambar 3.9 Kurva Catmull- Rom Spline 17

Gambar 3.10 Perubahan Kurva Pada Nilai  17

Gambar 3.11 Derivasi Kurva Catmull- Rom Splines 18 Gambar 3.12 Garis Singgung Kurva Catmull-Rom spline 22 Gambar 3.13 Interpolasi Kurva Catmull- Rom spline 23 Gambar 3.14 Model Interpolasi Catmull- Rom Splines 23 Gambar 3.15 (a) hasil perubahan  dalam Persamaan (1),

(b) hasil dari perubahan dalam Persamaan (3) 25

Gambar 3.16 Fungsi Lokal Kontrol Catmull-Rom Saplines 25 Gambar 3.17 Dua Segmen Kurva B-Spline Kubik Seragam 26

Gambar 3.18 Arsitektur GDI+ 28

Gambar 3.19 GDI+ Namespaces dan Class dalam .NET 29

Gambar 3.20 Bit Daerah Gambar 30

Gambar 3.21 Koordinat Kartesian 31

Gambar 3.22 Koordinat Display GDI+ 32

Gambar 3.23 Menggambar Garis dari titik (0,0) sampai (120,80) 32

Gambar 3.24 Garis Pada Form 34

Gambar 3.25 Garis Pada Form Dengan Pen 36

Gambar 3.26 Ellipse Pada Form Dengan Pen 37

Gambar 3.27 Arc Pada Form Dengan Pen 38

(11)

Gambar 3.29 Garis Pada Form Dengan Structure Point 39

Gambar 3.30 Poligon 40

Gambar 3.31 Poligon Pada Form Dengan Structure Point 40

Gambar 3.32 Cardinal Splines 41

Gambar 3.33 Cardinal Pada Form Dengan Structure Point 41 Gambar 3.34 Cardinal Tertutup Pada Form Dengan Structure Point 42

Gambar 3.35 Berzier Splines 42

(12)

DAFTAR ISTILAH

Aerospace, cabang ilmu yang mempelajari tentang angkasa luar.

Automotive, sesuatu hal/kegitan yang berhubungan dengan mobil.

Approksimasi, untuk menghitung lebih dekat dan mendekati ke nilai yang

benar.

memotong hanya dalam ke dua titik.

Dimensi, mengacu pada properti-properti yang disebut panjang, luas, dan

volume. Hanya memiliki konfigurasi panjang dikatakan menjadi satu dimensi

Diinkremen, ditambahkan.

Drop-off, pengurangan.

Eksplisit, gamblang.

F orward difference, perbedaan maju.

F leksibel, mudah disesuaikan.

Geometri, ilmu yang menangani tentang bentuk dan ukuran pada sesuatu

benda.

Grafik, berkaitan dengan grafik, atau skala gambar.

Grafika, gambar yang menunjukkan relasi antara angka set tertentu.

Grid, jaringan.

Implisit, mutlak

Interval, adalah himpunan yang berisi semua angka antara ke dua angka yang

diberikan.

Interpolasi, proses mencari nilai fungsi antara dua nilai yang dikenal dengan

prosedur lainnya dalam membandingkan hukum yang diberikan oleh fungsi

itu sendiri.

Koordinat, salah satu bilangan mengatur penempatan titik dalam ruang.

(13)

Komputasi, tindakan melaksanakan proses matematika. Digunakan terutama

dengan mengacu pada aritmatika dan bukan bekerja secara aljabar.

Linear, yang berhubungan dengan garis-garis lurus.

Matriks, sebuah array segi empat yang memiliki elemen baris dan kolom.

Numerik, terdiri dari bilangan, bukan huruf, tentang sifat angka.

Parametrik, merupakan keluarga kurva yang memiliki ketentuan, u = konstan

dan v = konstan di mana x = x(u,v), y = y(u,v), dan z = z(u,v).

Permukaan = Surface, adalah bentuk geometris yang terdiri pada titik-titik

koordinat yang memenuhi persamaan apa pun.

Polinomial, fungsi yang nilainya dapat dihitung dengan mensubstitusi nilai

tentang variabel independen.

Poligon, suatu bidang yang terdiri dari titik n.

Presisi, ketelitian.

Spasial, tata ruang.

Step, langkah.

Software, perangkat lunak.

Shipbuilding, pembuatan kapal.

Spline, didefinisikan sebagai gabungan potongan-potongan polynomial yang

didefinisikan sepanjang interval tertentu.

Tangen, jarak dari titik kontak ke persimpangan pada garis singgung.

Tension, ketegangan.

Topologi, bahwa cabang geometri yang berkaitan dengan sifat topologi.

Vektor, dalam ruang Euclid tiga dimensi, suatu entitas yang dapat

digambarkan oleh segmen garis terarah dan tunduk pada operasi tertentu

(14)

ABSTRAK

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 suatu permukaan. Bentuk permukaan objek nyata dapat direpresentasikan di layar komputer dengan menggunakan kurva parametrik. Teknik ini menggunakan fungsi parametrik, di mana bentuk dari kurva parametrik ini akan bergantung pada nilai parameter pembentuk kurvanya. Fungsi parametrik Kubik Bezier, dan B-Splines adalah beberapa fungsi parametrik yang dapat digunakan untuk merepresentasikan objek. Dalam penelitian ini, penulis menggunakan fungsi parametrik Catmull-Rom spline.

(15)

STUDY ON PARAMETRIC CURVE CATMULL-ROM SPLINES

ABSTRACT

The curves are widely used in every aspect of computer graphics, especially a piece of polynomial splines are parametric curves. Splines popular in Computer Aided Design (CAD) because of the simplicity of construction, ease and accuracy evaluation, and capacity to determine the shape of a surface complex. Real object surface shape can be represented on a computer screen by using parametric curves. This technique uses parametric functions, where this form of parametric curves will depend on the parameter value forming the curve. Cubic Bezier parametric function, and B-Splines are parametric functions which can be used to represent objects. In this study, the authors use a parametric function of Catmull-Rom spline.

(16)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Grafika komputer tengah menjadi teknologi masa kini. Segala proses

perancangan model- model objek saat ini telah banyak menggunakan

bantuan komputer. Industri automotive misalnya, sebelum mulai

mengeluarkan model bodi mobil terbaru, para desainer terlebih dahulu

merancang kerangka bodi tersebut dengan bantuan komputer. Dari

rancangan ini, para ahli teknik dapat memperhitungkan segala sesuatunya

sedemikian hingga bodi mobil tersebut pada akhirnya memiliki kualitas

maksimal. Bantuan komputer tadi dikenal dengan istilah CAD (Computer

Aided Design).

Ekplorasi lebih jauh dari CAD mengenai penggunaan kurva dan

permukaan sebagai alat bantu perancangan model terdapat pada CAGD

(Computer Aided Geometric Design). Kurva dan permukaan

Catmul-Rom Splines menjadi salah satu objek penting dalam CAGD dan banyak

digunakan dalam industry automotive, aerospace, dan shipbuilding.

Dalam merancang kerangka suatu model (mobil, pesawat, kapal),

desainer memerlukan permodelan matematika untuk menghasilkan kurva

atau permukaan yang halus. Kurva atau permukaan ini harus dapat diatur

secara bebas dan fleksibel. Selain itu, kriteria yang penting bagi desainer

adalah apabila mereka melakukan modifikasi pada suatu daerah kurva

atau permukaan, idealnya adalah yang terpengaruh hanya sebatas daerah

sekitar modifikasi dilakukan. Dengan demikian rancangan yang telah

(17)

pada daerah lain. Kurva parametrik Catmull-Rom splines memenuhi

semua kriteria perancangan. K urva parametrik Catmull-Rom splines

sebagai objek dasar yang paling populer di CAGD, selain karena

kestabilan dan keefisienan perhitungan numeriknya.

Kurva parametrik merupakan kurva dua dimensi yang dihasilkan dari

himpunan kurva yang berasal dari suatu fungsi parametrik. Beberapa

jenis kurva dapat digunakan untuk menghasilkan permukaan parametrik,

seperti B-Splines, Hermite, dan Catmull-Rom splines. Pada penelitian ini,

penulis menggunakan Catmull-Rom splines yang ditemukan ilmuan

Edwin Catmull dan Raphael Rom (2003). Kurva ini memiliki

karakteristik istimewa, yaitu kurva yang dihasilkan selalu melalui titik

kontrol dari kurva.

Berdasarkan karakteristik kurva ini, pengguna dapat menentukan bentuk

dari kurva yang dihasilkan dengan menentukan nilai titik kontrol kurva

tersebut. Dengan demikian kurva parametrik yang dihasilkan dari kurva

ini juga akan memiliki karakteristik. Dengan karakteristik ini, kurva

parametrik akan lebih mudah untuk diinterpretasikan ke dalam suatu

perangkat lunak. Dalam hal ini peranan dari bidang ilmu Grafika

Komputer akan sangat dibutuhkan.

1.2 Perumusan Masalah

Permasalahan dalam tulisan ini adalah bagaimana memvisualisasikan

kurva parametrik Catmull-Rom splines secara komputerisasi.

1.3 Tinjauan Pustaka

Menurut Jhon P ontas Simbolon & dkk (2010) Permukaan merupakan

(18)

setiap titik terdapat bagian kecil dari sistem koordinat yang didefenisikan

dari sistem koordinat dua dimensi. Sehingga permukaan parametrik

merupakan generalisasi dari kurva-kurva parametrik. Kurva merupakan

garis yang dihasilkan dari suatu fungsi matematika yang bentuknya

disesuaikan dengan titik kontrol (control point) yang merupakan

parameter dari fungsi tersebut. Dalam Grafika Komputer, kurva sering

digunakan untuk menggambarkan grafik dan permukaan suatu ob jek.

Menurut Achmad Basuki dan Ramadijanti (2006) Grafika Komputer

merupakan perangkat (tool) dasar yang digunakan untuk membuat kurva,

grafik, ataupun gambar dengan komputer. Dengan menggunakan

perangkat ini, penciptaan gambar ataupun permukaan parametrik dapat

dilakukan, bahkan dimudahkan. Ada beberapa program sederhana sampai

program yang sangat kompleks guna membuat gambar ataupun

permukaan parametrik antara lain; Adobe photoshop, Autocad, Visual

Basic 2008 (VB.NET).

Menurut Janner Simarmata (2010) Perangkat lunak adalah instruksi

langsung komputer untuk melakukan pekerjaan dan dapat ditemukan di

setiap aspek kehidupan modern, seperti perangkat lunak pemantau media,

perangkat hiburan, sampai perangkat untuk membuat kurva, grafik,

ataupun gambar.

1.4 Tujuan Penelitian

Tujuan penelitian ini adalah untuk dapat memvisualisasikan kurva

parametrik Catmull-Rom splines secara komputerisasi dengan bentuk

yang dapat disesuaikan, agar menghasilkan kurva parametrik yang

(19)

1.5 Kontribusi Penelitian

Setelah melakukan penelitian ini, penulis berharap bahwa yang

dihasilkan dari penelitian ini dapat bermanfaat di dalam dunia industri.

Karena melalui kurva parametrik ini suatu bentuk permukaan objek nyata

dapat direpresentasikan di layar komputer.

1.6 Metode Penelitian

Dalam metode penelitian ini penulis melakukan 3 (tiga) tahapan, yaitu:

 Menentukan bentuk kurva Catmull-Rom splines

Kurva ini merupakan keluarga kurva kubik interpolasi,

kelengkungan kurva ini selalu dipengaruhi dua titik sebelumnya

dan titik sesudahnya. Kemudian sebuah parameter u bernilai dari 0

sampai 1 digunakan untuk menentukan jumlah step dari kurva, dan

kelengkungan yang dibentuk dipengaruhi oleh tension (t).

 Membentuk pola kurva parametrik Catmull-Rom splines

Dalam pembentukan kurva parametrik Catmull-Rom splines

dibutuhkan sejumlah titik yang dapat mengatur bentuk kurva yang

dihasilkan, biasanya disebut titik ko ntrol. Setiap titik kontrol

mempengaruhi bentuk dari kurva yang dihasilkan.

Adapun nilai-nilai yang dapat di-input terhadap parameternya

adalah:

 Tension = bilangan riil

 Step = bilangan riil

(20)

Manipulasi dan modifikasi kurva Catmull-Rom splines yang

ditelaah terbatas pada menambah, menyisipkan dan menghapus

titik kontrol, menggeser posisi titik kontrol, menggeser nilai

tension, menyisipkan satu buah nilai tension, dan meningkatkan

derajat dengan tetap mempertahankan bentuk kurva.

 Merepresentasikan hasil dari kurva parametrik ke dalam perangkat lunak GDI+ (Graphic Device Interface) yang merupakan bagian

dari sistem operasi XP.

1.7 Sistematika Penulisan

Sistematika penulisan skripsi ini adalah sebagai berikut:

BAB I PENDAHULUAN membahas tentang Latar Belakang,

Perumusan Masalah, Tujuan Penelitian, Kontribusi Penelitian, Metode

Penelitian, serta Sistematika Penulisan.

BAB 2 LANDASAN TEORI menguraikan tentang Grafika Komputer

dan mengenai kurva parametrik serta non-parametrik. Bab ini juga

menyinggung mengenai pemograman yang digunakan.

BAB 3 PEMBAHASAN menjelasakan tentang penerapan Catmull-Rom

splines dengan prinsip-prinsipnya, karakteristik, dan modifikasinya

dengan mengugunakan program komputer.

BAB 4 KESIMPULAN berisikan kesimpulan umum dan saran untuk

(21)

BAB 2

LANDASAN TEORI

2.1 Pengertian Grafika Komputer

Grafika komputer adalah suatu bidang yang mempelajari penggambaran

suatu gambar dengan menggunakan komputer. Sehingga di dalam grafika

computer dibahas teknik-teknik pembuatan, penyimpanan, dan

manipulasi model dalam bentuk data gambar. Grafika komputer

menghasilkan software-software desain grafis yang saat ini sudah sangat

canggih, yang disebut GUI (Graphics User Interface) yang memudahkan

dan menyenangkan. Berikut ini merupakan kerangka Grafik Komputer

Interaktif.

Gambar 2.1 Kerangka Grafik Komputer Interatif

2.1.1 Pemanfaatan Grafika Komputer

Dalam pemanfaatan grafika komputer, hal yang dibahas adalah

mengenai spesifikasi bidang-bidang yang memanfaatkan grafika

komputer. Bidang-bidang tersebut di antaranya:

a. Computer-Aided Design (CAD)

CAD adalah suatu metode yang digunakan untuk

merancang suatu model 3D yang sekarang sudah rutin Graphics

System Graphics

Library (GL) Application

program Application

(22)

digunakan untuk merancang gedung, mobil, model pesawat,

komputer, tekstil dan banyak produk lainnya.

b. Hiburan

Industri filem dan televisi merasakan sekali pentingnya

grafika komputer. Selain itu, grafika komputer juga

dimanfaatkan pada pengembangan game di seluruh dunia.

c. P endidikan dan P elatihan

Pemodelan fisika, keuangan, dan sistem ekonomi sering

digunakan sebagai tujuan pendidikan. Pemodelan dari

sistem fisika, sistem fisilogis dan perkembangan populasi

bisa membantu untuk memahami jalannya suatu sistem.

d. Visualisasi

Ilmuwan, teknisi, personil medis, analis bisnis dan lainnya

sering membutuhkan untuk menganalisa banyaknya

informasi atau melakukan studi atas kelakuan dari proses

penting. Dengan menggunakan visualisasi semakin

mempermudah mempelajari, memahami dan melakukan

analisa terhadap suatu permasalahan.

e. P engolahan Citra

Suatu citra yang telah rusak dapat diperbaiki kembali

sehingga kualitasnya hampir menyamai citra yang masih

baru.

f. Graphical User Interface

GUI (Graphical User Interface) adalah perangkat lunak

atau program yang tersedia jadi lebih interaktif dan mudah

mengoperasikannya. Adapun bahasa pemrograman yang

(23)

Sedangkan kegiatan pemograman yang berkaitan dengan grafika

komputer, adalah:

 Pemodelan Geometris: menciptakan model matematika dari objek objek 2D dan 3D.

 Rendering: memproduksi citra yang lebih solid dari model yang telah dibentuk.

 Animasi: menetapkan/menampilkan kembali tingkahlaku objek bergantung waktu.

Pemodelan geometris merupakan transformasi dari suatu konsep

(atau suatu benda nyata) ke suatu model geometris yang bisa

ditampilkan pada suatu komputer. Berikut merupakan

elemen-elemen pembentuk grafik pada geometri:

Titik .

Garis

Polygon Kurva Lingkaran

Gambar 2.2 Elemen-elemen pembentuk grafik

2.2 Kurva

Kurva merupakan garis yang yang dihasilkan dari sesuatu fungsi

matematika yang bentuknya disesuaikan dengan titik kontrol (control

point) yang merupakan parameter dari fungsi tersebut. Kurva dapat

direpresentasikan sebagai kumpulan titik-titik persamaan berbentuk

non-parametrik ataupun non-parametrik. Persamaan menggunakan dua koordinat

(x dan y) untuk kurva bidang (2D) dan tiga koordinat (x, y, dan z) untuk

(24)

Persamaan kurva pada bidang non-parametrik secara umum adalah:

• Kurva eksplisit

Fungsi: y = f (x)

Contoh:

- Persamaan garis lurus: y = 3x + 1

- Persamaan parabola: y = x2

Kesulitan yang ditemui dari persamaan ini adalah:

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:

Persamaan ini memang dapat mengatasi masalah nilai tunggal y untuk

setiap satu nilai x, seperti yang dialami persamaan kurva eksplisit.

Namun kesulitan akan muncul apabila hanya memerlukan nilai tunggal y.

Bayangkan bagaimana menggambar setengah lingkaran dengan

menggunakan persamaan implisit. Jika ingin menggabungkan dua

segmen kurva implisit menjadi satu, maka sulit untuk menentukan

(25)

Persamaan kurva pada bidang parametrik secara umum adalah:

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

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

Contoh:

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

dengan 0 ≤ t ≤ 1

- Persamaan lingkaran kuadran I: 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 (Computer Aided

Geometric Design).

Baik representasi parametrik maupun non-parametrik memiliki

keunggulan dan kelemahan masing- masing. Misalnya pada representasi

non-parametrik, dapat dengan mudah mengetahui apakah suatu titik (x,y)

terletak pada kurva atau tidak. Sedangkan pada representasi parametrik,

hal ini menjadi sesuatu yang sulit. Ke dua representasi ini berguna dalam

aplikasi grafika komputer. Semuanya relatif dari tujuan penggambaran

kurva. Untuk kurva ruang persamaannya sama, hanya saja perlu

menambahkan satu koordinat z, dengan demikian titik-titik kurva terdiri

atas koordinat x, y, dan z.

2.2.1 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

(26)

Bentuk umum fungsi polinomial adalah sebagai berikut:

= a0+ a1t+ a2t2+…+antn

dengan ketentuan n adalah derajat polinomial tersebut.

Berbagai variasi kurva dapat disajikan tergantung pada derajat

polinomial yang digunakan, misalnya:

 Polinomial derajat satu (linea r) hanya dapat menggambarkan garis lurus.

Gambar 2.3 Kurva Polinomial derajat satu

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

Gambar 2.4 Kurva Polinomial derajat dua

(27)

 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 da n rumit.

Karena itulah, umumnya polinomial kubik yang digunakan

dalam penyajian kurva.

Gambar 2.5 Kurva Polinomial derajat tiga

2.2.2 Kurva Spline

Kurva yang merupakan hasil gabungan polinomial-polinomial

berderajat n. Kurva spline dapat didefinisikan sebagai gabungan

potongan-potongan polinomial (piecewise polynomial function)

yang didefinisikan sepanjang interval tertentu. Berikut merupakan

bentuk persamaan umumnya:

Secara alamiah spline kubik merupakan model matematis untuk

sejenis thin strip, yang mana melalui semua titik kontrol yang dapat

meminimalkan energi dasar. Spline kubik alami (natural cubic

spline) mempunyai kontinuitas C2 (terdiri C1, C0) dan lebih halus dibandingkan dengan kurva Hermite ataupun Bezier.

(28)

Contoh kurva spline:

x(t) = 2t + 7 , y(t) = 4t + 11 0 ≤ t ≤ 1

x(t) = t2 + 7t+ 1, y(t) = t2+ 5t + 9 1 ≤ t ≤ 2

Gambar 2.6 Koordinat Kurva Spline

2.2.3 Kontinuitas

Walaupun polinomial sudah dikatakan cukup sederhana dan mudah

digunakan merepresentasikan grafik, namun sulit menyajikan

bentuk kurva yang diharapkan hanya dengan menggunak an satu

fungsi polinomial untuk x = f (t) dan y = g (t). Hal yang dilakukan

adalah membagi bentuk kurva tersebut menjadi beberapa bagian

yang kemudian disebut sebagai segmen kurva. Setiap 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, objek grafik yang ingin

digambar dapat direpresentasikan dengan polinomial berderajat

(29)

Karena adanya penggabungan segmen-segmen kurva

polinomial kecil, tentunya harus memperhatikan kontinuitas dari

fungsi polinomial tersebut. Supaya kurva hasil gabungan

segmen-segmen tadi tersambung mulus dan tidak terputus, fungsi tersebut

harus kontinu.

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 ke dua kurva ini memiliki kontinuitas C0 atau kontinu pada posisi. Sehingga f'(a)= g'(b), dikatakan kurva yang

memiliki kontinuitas C1 atau kontinuitas tangen (velocity). Jika

f''(a)= g''(b), maka kurva memiliki kontinuitas C2 atau kontinuitas turunan ke dua (acceleration). Secara umum kurva yang bertemu di

satu titik akan memiliki kontinuitas Cn, dengan ketentuan 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 Catmull-Rom splines 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

(30)

sama (sejajar), kurva yang tersambung dikatakan memiliki

kontinuitas G1 (kontinuitas vektor tangen). Kontinuitas G2 adalah kelengkungan kontinuitas vektor.

Kelengkungan kurva pada suatu titik (Curvature sebuah garis lurus

adalah nol). Kurva dapat dikatakan memiliki kontinuitas G2 tanpa harus memiliki kontinuitas C2. G. Neilson (2000) memberikan 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. Berikut ini adalah contoh

gambar kurva yang memilikikontinuitas C0, C1, C2:

Gambar 2.7 Kontinuitas pada kurva

2.2.4 Titik Kontrol Kurva

Kurva adalah bentuk primitif dari suatu objek grafik. Bentuk

primitif ini, dapat membuat objek yang rumit dan kompleks.

Pembahasan sebelumnya, 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.

Setiap persamaan polinomial memiliki sejumlah titik kontrol.

Dinamakan titik kontrol karena titik ini berkaitan dengan fungsi

kurva. Hal ini dapat memanipulasi bentuk kurva secara bebas

(31)

Gambar 2.8 Kurva dengan titik kontrol

Perhatikan Gambar 2.8. Dengan tiga titik kontrol (x1, y1), (x2, y2),

dan (x3, y3), 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 adalah kurva Bézier dan kurva

Catmull- Rom splines.

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

(32)

Gambar 2.8 Kurva dengan titik kontrol

Perhatikan Gambar 2.8. Dengan tiga titik kontrol (x1, y1), (x2, y2),

dan (x3, y3), 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 adalah kurva Bézier dan kurva

Catmull- Rom splines.

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

(33)

BAB 3

PEMBAHASAN

3.1 Catmull-Rom Splines

Catmull- Rom splines adalah interpolasi spline lokal yang dikembangkan

untuk keperluan komputer grafis. Skripsi ini menyajikan pengembangan

sederhana dari bentuk matriks spline. Matriks formulir timbul dari

sebuah argumen geometris sederhana yang mencoba untuk memperbaiki

garis singgung pada titik-titik kontrol tertentu menjadi rata-rata dari

kemiringan dua segmen garis kontrol poligon berdekatan dengan setiap

titik kontrol.

P1

P0

P3

P2

Gambar 3.9 Kurva Catmull-Rom spline

Catmull- Rom splines memiliki kontinuitas C1, kontrol lokal, dan interpolasi, dalam kehalusan titik kontrolnya. Garis singgung pada titik

P0 adalah tidak secara jelas didefinisikan, seringkali menetapkan ini

untuk  (P1-P0). Parameter  tersebut dikenal sebagai tension yang

mempengaruhi kurva melengkung tajam (interpolasi) di titik kontrol.

Berikut adalah gambarannya:

= 0.2 = 0.5 = 0.75

(34)

Dalam persamaan matriksnya, Catmull-Rom splines adalah keluarga

splines interpolasi kubik yang dirumuskan sedemikian rupa sehingga

garis singgung di masing- masing titik Pi dihitung dengan menggunakan

titik sebelumnya dan berikutnya pada spline, (Pi+1-Pi-1). Bentuk

geometri matriksnya adalah:

(1)

(2)

Perhatikan suatu segmen Catmull- Rom spline tunggal, P(s) dimisalkan

oleh 4 (empat) titik kontrol, Pi-2, Pi-1, Pi, dan Pi+1, seperti pada Gambar

3.11.

(Pi-Pi-2) Pi+1

Pi-1 Pi+1-Pi-1

Pi

Pi-2

Gambar 3.11 Derivasi kurva Catmull- Rom spline

Dari hasil pemeriksaan Gambar 3.11, ditemukan:

P (0) = Pi-1

P (1) = Pi

P’ (0) = (Pi – Pi-2)

P’ (1) = (Pi+1– Pi-1)

Setelah itu bisa digabungkan kendala di atas dengan (2) untuk

mendapatkan berikut:

C0 = Pi-1 (3)

C0 + C1 + C2 + C3 = Pi (4)

C1 = (Pi– Pi-2) (5)

(35)

Seterusnya, untuk menggantikan (3) dan (5) ke (4) dan (6) agar

mendapatkan persamaan di mana C2 dan C3 adalah satu-satunya variabel.

C2 + C3 = (Pi– Pi-1) – (Pi– Pi-2)

2C2 + 3C3 =  (Pi+1– Pi-1) – (Pi– Pi-2)

Kemudian, jelas bahwa dengan mengurangi ke dua persamaan dapat

dengan mudah memperoleh C2 dan C3:

C0 = Pi-1

C1 =  (Pi– Pi-2)

C2 = 3 (Pi– Pi-1) −  (Pi+1– Pi-1) – 2 (Pi– Pi-2)

C3 = -2 (Pi– Pi-1) +  (Pi+1– Pi-1) +  (Pi– Pi-2)

Jika ingin membentuk dasar matriks ini, maka harus mengkelompokkan

semua secara bersamaan hingga diperoleh:

C0 = Pi-1

C1 = ( - )Pi-2 + (  )Pi

C2 = ( 2)Pi-2 + ( − 3 )Pi-1 + ( 3 – 2)Pi + ( -)Pi+1

C3 = ( -)Pi-2 + ( 2 − )Pi-1 + ( − 2 )Pi + ( )Pi+1

Dari hal ini cukup jelas untuk mengisi geometri matriks,

(36)

3.2 Kurva Prametrik

Representasi poligon dalam beberapa hal amatlah memakan ruang

penyimpanan. Suatu permukaan yang penuh dengan lekukan apabila

direpresentasikan dengan poligon bisa memerlukan begitu banyak

poligon. Semakin mengharapkan representasi yang tepat dengan

bentuknya semakin halus ukuran tiap poligon.

Fungsi parametrik dapat digunakan untuk merepresentasikan

obyek-obyek permukaan atau kurva demikian. Suatu kurva dapat dipandang

sebagai sejumlah titik yang memenuhi fungsi persamaan P (t) dengan

parameter t yang berharga dalam range . Kurva dinyatakan dalam

persamaan parametrik polinomial berderajat tiga (kubik). Sehingga

titik-titik pada kurva direpresentasikan P (t) = at3 + bt2 + ct + d dengan 

berada dalam range [0, 1]. P (t) untuk suatu  adalah koordinat titik pada

kurva dan koefisien tersebut masing- masing juga adalah vektor a = (ax,

ay, az), b = (bx, by, bz), c = (cx, cy, cz), dan d = (dx, dy, dz).

x(t) = axt3 + bxt2 + cxt + dx

y(t) = ayt3 + byt2 + cyt + dy

z(t) = azt3 + bzt2 + czt + dz

Bentuk pesamaan dapat dituliskan dalam notasi perkalian matriks

sebagai:

Dalam memaparkan fungsi kurva parametrik dengan polinomial

berderajat tiga atau disebut fungsi kurva parametrik kubik. Derajat yang

lebih tinggi dari tiga bisa lebih tepat, bisa juga terlalu tepat sehingga

terbentuk kerutan yang tidak diharapkan. Sementara, derajat yang

(37)

Dalam penggambaran kurva tersebut t diinkremen dari 0.0 hingga 1.0

dengan inkremen  = 1/n, jika n jumlah sampling pada kurva.

Harga-harga x(t), y(t) dan z(t) dapat dihitung secara naif dari fungsi

polinomialnya tersebut tetapi untuk efisiensi dapat menggunakan

metoda “forward difference” P(t) sebagai berikut:

P(t+) = a(t+)3 + b(t+)2 + c(t+) + d

= P(t) + 3at2+ 3a2t + a3 + 2bt + b2 + c = P(t) + P(t)

dengan P(t) = 3at2+ (3a2+ 2b)t + (a3 + b2 + c ) yang masih merupakan polinomial berderajat dua. Dengan Forward difference

diperoleh:

P(t+) = 3a(t+)2+ (3a2+ 2b)(t+) + (a3 + b2 + c) = P(t) + 6a2t + 6a3 + 2b2

= P(t) + 2P(t)

dengan 2P(t) = 6a2t + 6a3 + 2b2 yang masih merupakan polinomial berderajat satu. Dengan forward difference diperoleh:

2

P(t+) = 6a2(t+) + 6a3 + 2b2

= 2P(t) + 6a3

= 2P(t) + 3P(t) dengan 3P(t) = 6a3 suatu konstanta.

Pada saat t = 0 diperoleh:

P(0) = d

P(0) = a3 + b2 + c

P2(0) =6a3 + 2b2 dan

  3

(38)

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 C1, 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.

(39)

Bisa dilihat pada Gambar 3.13 bahwa Catmull-Rom splines tidak

interpolasi titik kontrol pertama dan terakhir.

V0 = P1

V1 = P1 + (P2 – P0)

V2 = P2 + (P3 – P1)

V3 = P2

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

(40)

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 WR atau WL . 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,

(41)

= 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

(42)

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.

(43)

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)

Dalam hal ini, perangkat lunak yang penulis gunakan adalah Visual Basic

2008 (VB.NET). Untuk pemrograman Grafik VB.NET dibutuhkan GDI+

(Graphic Device Interface) yang merupakan bagian dari sistem operasi

XP. GDI+ yang memiliki kemampuan untuk mengolah grafik vektor dua

dimensi (gar is), imaging (bitmap) dan typography (font) pada layar

maupun Printer.

Dengan GDI+, programmer tidak perlu mengetahui detail dari

masing- masing peralatan untuk menampilkan grafik diatasnya, tetapi

cukup menggunakan fasilitas yang telah disediakan oleh GDI+ class.

GDI+ adalah library pada .NET yang digunakan untuk membuat aplikasi

grafis berbasis Windows dan Web yang dapat berinteraksi dengan

perangkat grafis berupa printer atau monitor. Graphical User Interface

(GUI) berinteraksi dengan perangkat hardware seperti monitor, printer,

(44)

tetapi tidak ada program yang dapat mengakses perangkat hardware

tersebut secara langsung, dibuat user interface agar pengguna dapat

berinteraksi dengan perangkat-perangkat tersebut.

Untuk membuat user interface tersebut harus digunakan third component

sebagai jembatan antara program dan perangkat keras, dibuatlah

komponen GDI+ library, dengan komponen tersebut dapat menampilkan

output berupa text dan gambar ke perangkat hardware.

Pada aplikasi .NET dapat menggunakan GDI+ untuk membuat aplikasi

grafis baik untuk aplikasi berbasis windows maupun aplikasi web.

Library GDI+ sudah tersinstall secara default pada sistem operasi

Windows XP, Vista, dan Windows 2003 yang berlokasi di class library

dengan nama Gdiplus.dll.

Gambar 3.18 Arsitektur GDI+

Fitur GDI+ dapat kategorikan dalam 3 (tiga) fungsi utama yaitu:

a) 2D Vektor Graphic P rogramming

Vektor Graphic merupakan komponen pembentuk bentuk gambar

mis (kotak, lingkaran) yang dibentuk dari kumpulan titik pada sistem

koordinat. Pada.NET Framework library 2D vektor graphic

programming dibagi menjadi dua kategori yaitu general dan

advanced. General 2D vektor graphic didefinisikan dalam library

System.Drawing namespace dan advance function didefinisikan

(45)

b) Imaging

Imaging digunakan untuk memanipulasi image. Image file yang

dapat dimanipulasi misalnya; .bmp, .jpg, .gif, dan .png.

Fungsi-fungsi untuk memanipulasi images ada dalam Image class yang

digunakan untuk create, save, dan load images.

c) Typography

Typography digunakan untuk mendesign dan merepresentasikan

text. GDI+ menyediakan class untuk membuat dan menggunakan

font.

Gambar 3.19 GDI+ Namespaces dan Class dalam .NET

3.3.1 Area Menggambar

Setiap aplikasi menggambar paling tidak terdiri dari 3 (tiga)

komponen yaitu canvas, brush, pen, dan process:

• Canvas: adalah area di mana object akan digambar, pada aplikasi Windows, Windows Form adalah canvasnya.

• Brush atau Pen merepresentasikan tekstur, warna, dan ukuran dari objek yang digambar pada canvas.

(46)

Gambar 3.20 Bit Daerah Gambar

Setiap area gambaran memiliki 4 (empat) properti utama yaitu:

lebar, tinggi, resolution dan warna depth.

• Lebar dan tinggi properti digunakan untuk menentukan ukuran area menggambar secara vertikal dan horizontal

• Resolution adalah satuan untuk mengukur output kualitas dari grafik objek atau gambar dalam satuan dot per inchi

(dpi). Sebagai contoh resolusi 72 dpi berarti 1 inchi dari

area tersebut terdiri dari 72 horizontal dan 72 vertikal

pixel. Untuk monitor resolusi 1280x1024 berarti pada area

monitor tersebut terdiri dari 1280 horizontal pixel dan

1024 vertikal pixel.

• Warna depth adalah jumlah warna yang digunakan untuk merepresentasikan setiap pixel.

Definisi: Pixel adalah elemen terkecil pada proses menggambar

untuk menampilkan graphic object atau images pada layar.

Struktur warna pada GDI+ mempunyai 4 (empat) komponen warna

yaitu: alpha, red, green, dan blue. Red green blue (RGB) komponen

mewakili kombinasi warna yang muncul. Setiap komponen dalam

RGB mempunyai 256 (28) kombinasi warna, sehingga kombinasi

tiga komponen RGB tersebut mempunyai kemungkinan warna

256x256x256. Alpha komponen mewakili aspek transparan dari

(47)

3.3.2 Sistem Koordinat

Memahami sistem koordinat sangat penting untuk pemrograman

grafik, sistem koordinat merepresentasikan letak grafik objek pada

perangkat tampilan seperti monitor dan printer.

a) Sistem Koordinat Kartesian

Ini adalah koordinat umum yang dipelajari pada pelajaran

matematika dasar, terdiri dari sumbu x dan y

Gambar 3.21 Koordinat Kartesian

Posisi sitem koordinat Kartesian dibagi menjadi beberapa kuadran:

• Kuadran I: x > 0 dan y > 0

• Kuadran II: x < 0 dan y > 0

• Kuadran III: x < 0 dan y < 0

• Kuadran IV: x > 0 dan y < 0

b) Sistem Koordinat Standar GDI+

Tidak seperti sistem Kartesian, pada perangkat tampilan seperti

(48)

Gambar 3.22 Koordinat Display GDI+

Gambar 3.23 Menggambar Garis dari titik (0,0) sampai (120,80)

3.3.3 Menggambar Garis Pada Form

Penggambaran Grafik form dapat dilakukan melalui Objek Grafik

yang dapat dideklarasikan sebagai berikut:

Dim MyGraphics As System.Drawing.Graphics = Me.CreateGraphics

Objek Grafik menyediakan berbagai metode untuk menggambar seperti DrawLine, DrawRectangle, dll

Dalam penggambaran, membutuhkan Objek Pen penyedia

atribut Warna dan Ketebalan garis dalam ukuran pixel.

Objek Pen dapat dideklarasikan sebagai berikut:

(49)

Warna adalah warna yang diinginkan, dan tebal adalah tebal pen

dalam ukuran point.

Contoh program GDI+ yang pertama:

Option Explicit On Imports System

Imports System.Windows.Forms

Imports Microsoft.VisualBasic

Public Class MyForm :Inherits Form<System.STAThread()> _

Public Shared Sub Main()

Application.Run(New MyForm)

End Sub

Public Sub New() 'Constructor

Me.Text = "Mengambar garis pada Form"

End Sub

Private Sub MyForm_Click(Sender As Object, e As

System.EventArgs)

Handles MyBase.Click

Dim MyPen As New

System.Drawing.Pen(System.Drawing.Color.Red,3)

Dim MyGraphic As System.Drawing.Graphics =

Me.CreateGraphics

MyGraphic.DrawLine(MyPen,10,10,200,100)

End Sub End Class

Kemudian simpan program di atas dengan mana grafik.vb

a) Proses Kompilasi

Proses kompilasi dengan menggunakan perintah:

Vbcgrafik.vb/r:System.dll/r:System.Windows.For

(50)

Ketika dijalankan, dan klik pada form akan menghasilkan

tampilan:

Gambar 3.24 Garis Pada Form

Catatan:

Mengenai pemrogram form pada VB.NET dapat dibaca di

ebook pemrogram form pada VB.NET

Salah satu kelemahan dari cara di atas adalah, kalau form mengalami refresh, garis yang telah digambarkan tersebut akan hilang (VB.NET tidak menyediakan property AutoRedraw seperti yang terdapat pada VB6)

Untuk membuktikannya minimize dan maximize kembali form diatas, garis tersebut akan hilang.

b) Melakukan Overriding Te rhadap Metoda Onpaint

OnPaint Event Handle adalah event yang dibangkitkan setiap

kali form mengalami refresh (pada saat minimize, maximize

maupun ditimpa oleh form lain). Jika dilakukan overriding

terhadap Event ini dan menempatkan perintah penggambaran

garis di dalamnya ini, maka garis tersebut digambar setiap

(51)

Parameter PaintEventArgs pada Sub OnPaint merupakan

Protected Overrides Sub OnPaint(ByVal e As

PaintEventArgs)

Kalau program di atas dijalankan, akan menampilkan garis

pada form dan tetap akan ada walaupun form direfresh.

Catatan:

Pada contoh diatas melakukan overriding terhadap metoda OnPaint yang ada pada Base class dengan Metoda baru yang dibuat di dalamnya mengambarkan garis, sehingga setiap kejadian OnPaint akan menjalankan Event baru tersebut.

(52)

3.3.4 Menggambar Grafik Vektor 2 Dimensi

Grafik vektor merupakan kemampuan menggambar bentuk-bentuk

tradisional seperti garis, kurva dan bentuk berdasarkan sekumpulan

titik tertentu.

Untuk penggambaran grafik vektor dapat menggunakan objek Pen

dan Brush, dimana objek Pen untuk penggambaran bentuk garis,

dan Brush untuk objek isian.

3.3.4.1 Menggambar Garis Dengan Pen

Perintah DrawLine (pen, x1, y1, x2, y2) digunakan menggambar

garis dari koordinat awal (x1, y1) ke koordinat akhir (x2, y2).

Contoh:

Dim MyPen As New

System.Drawing.Pen(System.Drawing.Color.Red,3) e.Graphics.DrawLine(MyPen,10,10,200,100)

akan menghasilkan:

(53)

a) Menggambar Ellipse Pada Form Dengan Pen

Dapat digunakan metoda DrawEllipse (Pen, x, y, lebar,

tinggi) pada objek grafik untuk menggambar ellipse pada

koordinat x, y dengan ukuran lebar dan tinggi tertentu.

Contoh:

e.Graphics.DrawEllipse(MyPen,10,10,200,100)

akan menghasilkan:

Gambar 3.26 Ellipse Pada Form Dengan Pen

b) Menggambar Arc Pada Form Dengan Pen

Dapat digunakan metoda DrawArc (Pen, x, y, lebar,

tinggi, sudutawal, sudutakhir) untuk menggambar arcus,

adapun perbedaan antara Ellipse dengan Arc adalah, kalau

ellipse adalah gambar kurva tertutup, sedangkan Arc

ditentukan oleh sudut awal dan akhir penggambaran

kurva.

Contoh:

(54)

akan menghasilkan:

Gambar 3.27 Arc Pada Form Dengan Pen

c) Menggambar Pie pada Form dengan Pen

Kalau Arc adalah kurva dengan sudut awal dan akhir,

demikian juga pie, bedanya adalah pie merupakan kurva

tertutup. Untuk menggambar pie dapat digunakan metoda

DrawEllipse(Pen,x,y,lebar,tinggi).

Contoh:

e.Graphics.DrawPie(MyPen,10,10,200,100,0,90)

akan menghasilkan:

(55)

3.3.4.2 Menggunakan Structure Point

Dapat juga menggunakan structure point untuk penentuan

koordinat (x, y) awal dan akhir pada perintah DrawLine(pen,

point1, point2).

Catatan:

DrawLine(pen, point1, point2) merupakan metode overloading

terhadap DrawLine(pen,x1,y1,x2,y2)

Contoh:

Dim Point1 As New System.Drawing.Point(10,10)

Dim Point2 As New System.Drawing.Point(200,100) e.Graphics.DrawLine(MyPen,Point1,Point2)

ketika dijalankan akan menghasilkan garis yang sama dengan

perintah:

e.Graphics.DrawLine(MyPen,10,10,200,100)

akan menghasilkan:

(56)

a) Menggambar Poligon Dengan Array Dari Point

DrawPolygons(Pen,PointArray) merupakan kurva tertutup

yang dibentuk oleh garis-garis, untuk menggambar

poligon perlu menyediakan array yang berisi koord inat

(x,y) dari sudut-sudut poligon.

Gambar 3.30 Poligon

Contoh:

Dim MyPen As New

System.Drawing.Pen(System.Drawing.Color.Red, 3)

Dim MyArr As System.Drawing.Point() = _ {new System.Drawing.Point(0,0), _

new System.Drawing.Point(250,130), _

new System.Drawing.Point(190,160)} e.Graphics.DrawPolygon(MyPen,MyArr)

akan menghasilkan:

(57)

b) Menggambar Cardinal Splines Dengan Array Point Jika poligon merupakan kurva tertutup yang dihubungan

oleh garis lurus pada setiap koordinat (x,y) sudutnya,

maka DrawCurve(Pen, PointArray, Tangen) merupakan

kurva terbuka yang dibentuk dengan garis lengkung yang

memiliki nilai tangent tertentu, berikut ini adalah contoh

gambar cardinal splines yang memiliki tiga titik dengan

nilai tangent yang berbeda (0, 1, 1.5, dan 2).

Gambar 3.32 Cardinal Splines

Contoh:

Dim MyPen As New

System.Drawing.Pen(System.Drawing.Color.Red, 3)

Dim MyArr As System.Drawing.Point() = _ {new System.Drawing.Point(0,0), _

new System.Drawing.Point(250,130), _

new System.Drawing.Point(190,160)} e.Graphics.DrawCurve(MyPen,MyArr,1.5F)

akan menghasilkan:

(58)

Kemudian dapat juga menggunakan DrawClosedCurve

(pen, PointArray) untuk menghasilkan kurva tertutup.

Contoh:

Dim MyPen As New

System.Drawing.Pen(System.Drawing.Color.Red, 3)

Dim MyArr As System.Drawing.Point() = _ {new System.Drawing.Point(0,0), _

new System.Drawing.Point(250,130), _

new System.Drawing.Point(190,160)} e.Graphics.DrawClosedCurve(MyPen,MyArr)

akan menghasilkan:

Gambar 3.34 Cardinal Tertutup Pada Form Structure Point

c) Menggambar Bezier Splines Dengan Array Dari Point DrawBezier(pen, x1, y1, x2, y2, x3, y3, x4, y4) merupakan

kurva dengan dari koordinat (x1, y1) awal ke koordinat (x2,

y2), dengan dua koordinat kontrol (x3, y3) dan (x4, y4).

(59)

Pada Gambar. 3.35 P1 awal koordinat awal, P2 adalah

koordinat akhir, dan C1, C2 adalah koordinat kontrol

Bezier.

Contoh:

Dim MyPen As New

System.Drawing.Pen(System.Drawing.Color.Red, 3) e.Graphics.DrawBezier(MyPen,0,0,200,200,70,50, 150, 40)

akan menghasilkan:

(60)

BAB 4

KESIMPULAN DAN SARAN

4.1 Kesimpulan

Berdasarkan hasil pengujian dan pembahasan, dapat disimpulkan

beberapa hal tentang pembentukkan permukaan Catmull-Rom spline,

yaitu:

1. Kurva parametrik Catmull-Rom splines yang dihasilkan memiliki

keterbatasan dalam pembentukannya sebatas titik kontrol yang

digunakan pada permukaan.

2. Kelengkungan kurva parametrik Catmull- Rom splines dipengaruhi

parameter kelengkungan (tension). Semakin kecil nilai tension, kurva

yang dihasilkan semakin tegak lurus sebaliknya semakin besar nilai

tension, kurva yang dihasilkan semakin melengkung.

3. Ketika terdapat dua titik maksimum dan minimum yang berdekatan,

kurva akan mengalami kelengkungan yang kasar.

4. Kurva parametrik Catmull- Rom splines yang dihasilkan dapat

digunakan untuk memodelkan permukaan datar maupun

bergelombang, hal ini dipengaruhi nilai titik kontrol dan parameter

(61)

4.2 Saran

Untuk pengembangan permukaan parametrik Catmull- Rom splines ini

ada beberapa saran yang dapat penulis berikan, diantaranya:

1. Sebaiknya penerapan kurva parametrik Catmull- Rom splines dengan

menggunakan aplikasi lain, misalnya: CAD (Computer-Aided

Design) dan CAGD (Computer Aided Geometric Design).

2. Agar pengembangan kurva parametrik Catmull-Rom splines

dilakukan dengan cara membandingkan dengan kurva lain, misalnya:

(62)

LAMPIRAN

a) Kurva parametrik Catmull-Rom splines yang dipengaruhi oleh titik kontrol:

1. Berikut ini merupakan kurva yang memiliki 4 (empat) titik kontrol dan 1(satu) titik maksimum serta 1(satu) titik minimum dengan nilai = 0.

(63)

b) Kelengkungan kurva parametrik Catmull-Rom splines yang dipengaruhi oleh nilai tension:

1. Berikut ini merupakan kurva yang memiliki 4 (empat) titik kontro l dan 1(satu) titik maksimum serta 1(satu) titik minimum dengan nilai = 0.5.

(64)

c) Kelengkungan kurva yang kasar akan terjadi, ketika terdapat dua titik maksimum dan minimum yang berdekatan:

1. Berikut ini merupakan kurva yang memiliki 6 (empat) titik kontrol dengan 1(satu) titik maksimum serta 1(satu) titik minimum yang berdekatan dengan nilai = 0.

Gambar

Gambar 2.1 Kerangka Grafik Komputer Interatif
Gambar 2.2 Elemen-elemen pembentuk grafik
Gambar 2.3 Kurva Polinomial derajat satu
gambar yang
+7

Referensi

Dokumen terkait