35
PEMODELAN OBJEK 2 DIMENSI
Primitif Objek
Setelah mengikuti kegiatan belajar 3 ini peserta diklat diharapkan dapat : 1. Melalui diskusi peserta diklat menganalisis output primitif grafika komputer
untuk membuat objek.
2.
Melalui praktikum peserta diklat membuat kode program berdasarkan algoritma pembentukan garis dan lingkaran.
1. Menerapkan perintah-perintah dasar OpenGL untuk menggambar primitif objek
2. Menulis kode program sesuai algoritma pembentukan garis dan lingkaran
1. Primitif Objek
Primitives merupakan geometri sederhana basic seperti titik points, garis lines dan bangunan dua dimensi. Dalam grafika komputer penghasilan citra
menggunakan primitive grafik dasar, primitif ini memudahkan untur merender atau menggambar pada layar monitor sebagaimana penggunaan persamaan
geometri sederhana. Contoh primitive grafika dasar antara lain : titik, garis, kurva, fill area dan text. Objek kompleks dapat dibuat dengan kombinasi dari primitive
ini. Misalkan, Poligaris atau yang dapat didefinisikan sebagai urutan garis lurus yang saling terhubung. Secara umum algoritma grafis memiliki persamaan yaitu
bagaimana menampilkan hasil. Objek kompleks dapat dibuat dengan mengkombinasikan bentuk-bentuk primitive.
A. Tujuan Pembelajaran
B. Indikator Pencapaian Kompetensi
C. Uraian Materi
36
2. Titik dan Garis
Pembentukan titik dilakukan dengan mengkonversi suatu posisi titik koordinat dengan program aplikasi ke dalam suatu operasi tertentu menggunakan output.
Random-scan vektor sistem menyimpan instruksi pembentukan titik pada display list dan nilai koordinat menentukan posisi pancaran electron ke arah
lapisan fosfor pada layer. Garis dibuat dengan menentukan posisi titik diantara titik awal dan akhir dari suatu garis. Untuk menggambar titik point digunakan
perintah pointx,y dimana nilai x dan y adalah koordinat pada layar.
3. Membuat Titik dan Garis
Untuk menggambar titik point digunakan perintah pointx,y dimana nilai x dan y adalah koordinat pada layar. Sedangkan untuk membuat garis digunakan
perintah linesx1,y1,x2,y2.
Persamaan garis menurut koordinat Cartesian adalah:
y = m.x + b
dimana m adalah slope kemiringan dari garis yang dibentuk oleh dua titik yaitu x
1
,y
1
dan x
2
, y
2
. Untuk penambahan x sepanjang garis yaitu dx akan mendapatkan penambahan y
sebesar Δ y = m. Δ x
•
Algoritma DDA Digital Differential Analyzer
DDA adalah algoritma pembentukan garis berdasarkan perhitungan Δ x dan Δ y, menggunakan rumus y = m. Δ
x. Garis dibuat dengan menentukan dua endpoint yaitu titik awal dan titik akhir. Setiap koordinat titik yang
membentuk garis diperoleh dari perhitungan, kemudian dikonversikan menjadi nilai integer. Langkah-langkah
pembentukan menurut algoritma DDA, yaitu : 1 Tentukan dua titik yang akan dihubungkan.
2 Tentukan salah satu titik sebagai titik awal x , y
dan titik akhir x
1
, y
1
. 3 Hitung Δ x = x
1
– x dan Δ y = y
1
– y .
37
4 Tentukan step, yaitu jarak maksimum jumlah penambahan nilai x maupun nilai y dengan cara :
• bila nilai |Δ y| |Δ x| maka step = nilai |Δ y|.
• bila tidak maka step = |Δ x|.
5 Hitung penambahan
koordinat pixel
yaitu x_increment = Δ x step dan y_increment = Δ y
step. 6 Koordinat
selanjutnya x+x_incerement,
y+y_increment. 7 Posisi
pixel pada
layer ditentukan
dengan pembulatan nilai koordinasi tersebut.
8 Ulangi step 6 dan 7 untuk menentukan posisi pixel selanjutnya, sampai x = x
1
dan y = y
1
Contoh: Untuk
menggambarkan algoritma
DDA dalam
pembentukan suatu garis yang menghubungkan titik 5,5 dan 10,9, pertama-tama ditentukan dx dan dy,
kemudian dicari step untuk mendapatkan x_increment dan y_increment.
Δ x = x
1
– x = 10-5 = 5
Δ y = y
1
– y = 9 -5 = 4
selanjutnya hitung dan bandingkan nilai absolutnya. |Δ x| = 5
|Δ y| = 4 karena |Δ x| |Δ y|, maka step = |Δ x| = 5, maka diperoleh :
x_inc = 55 = 1 y_inc = 45 = 0.8
38
Tabel 2 Data algoritma DDA
K X
Y Roundx, roundy
5,5 6
5.8 6,6
1 7
6.6 7,7
2 8
7.4 8,7
3 9
8.2 9,8
4 10
9 10,9
10 9
8 7
6 5
5 6
7 8
9 10
•
Algoritma Bressenham
Prosedur untuk menggambar kembali garis dengan membulatkan nilai x atau y kebilangan integer
membutuhkan waktu, serta variable x,y dan m merupakan bilangan real karena kemiringan merupakan
nilai pecahan. Bressenham mengembangkan algoritma klasik yang lebih menarik, karena hanya menggunakan
perhitungan matematika dengan bilangan integer. Dengan demikian tidak perlu membulatkan nilai posisi