Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehYohanes Pranata Telah diubah "7 tahun yang lalu
1
Pembentuk Grafik Grafik dapat terbentuk dengan berbagai pola : Titik
Garis Lingkaran Poliline Area 2D dan 3D Dll Materi matkul Komputer Grafik adalah mempelajari bagaimana grafik tersebut dapat terbentuk melalui pola2 pembentuknya.
2
GARIS Algoritma Pembentukan Garis
Persamaan garis lurus berdasarkan Cartesian adalah: dimana: m : Kemiringan garis b : intercept y y2 y1 X1 X2 Bila diketahui kedua ujung garis berada pada posisi (x1, y1) dan (x2, y2) maka:
3
GARIS Berdasarkan persamaan garis tersebut maka dapat ditentukan hubungan antara x dan y, yaitu: y2 y1 X1 X2 y x
4
GARIS-DDA A. Algoritma DDA
Digital Diferential Analyzer (DDA) adalah algoritma pembentukan garis berdasarkan perhitungan y atau x, menggunakan perasamaan : atau Garis dibuat menggunakan dua ujung garis, yaitu titik awal (x1, y1) dan titik akhir (x2, y2). Setiap koordinat titik (xk, yk) yang membentuk garis diperoleh dari perhitungan, kemudian hasil perhitungan dikonversikan menjadi nilai integer.
5
GARIS-DDA Langkah-langkah pembentukan garis berdasarkan algoritma DDA adalah: 1. Tentukan dua titik yang akan dihubungkan dalam pembentukan garis. 2. Tentukan salah satu sebagai titik awal (x1, y1) dan titik akhir (x2, y2). 3. Hitung dx = x2 - x1 dan dy = y2 - y1 4. Tentukan step, yaitu jarak maksimum jumlah penambahan nilai x atau nilai y, dengan ketentuan: - bila |dx| > |dy| maka step = |dx| - bila tidak, maka step = |dy| 5. Hitung penambahan koordinat pixel dengan persamaan: x_inc = dx / step y_inc = dy / step 6. Koordinat selanjutnya (x+x_inc, y+y_inc) 7. Plot pixel pada layar, nilai koordinat hasil perhitungan dibulatkan Ulangi nomor 6 dan 7 untuk menentukan posisi pixel berikutnya sampai x = x1 atau y = y1.
6
GARIS-DDA Perhatikan ilustrasi gambar berikut ini Jalur garis
14 13 12 11 10 50 49 48 47 46 51 52 53 54 Jalur garis Jalur garis
7
GARIS-DDA
8
GARIS-DDA
9
GARIS-DDA
10
GARIS-DDA Prosedur Algoritma Garis DDA
Prosedur pembentukan garis lurus dengan algoritma DDA menggunakan bahasa pemrograman C adalah sebagai berikut: void Line(int x1, y1, x2, y2;) { int step, k; float dx=x2-x1, dy=y2-y1, x_inc, y_inc, x, y; x=x1; y=y1; if (abs(dx)>abs(dy)) step=abs(dx); else step=abs(dy); x_inc=dx/step; y_inc=dy/step; setpixel (x,y); for (k=0; k<step; k++){ x += X_inc; y += y_inc; setpixel(round(x),round(y)); }
11
GARIS-DDA Kelemahan Algoritma DDA
Prosedur untuk menggambar kembali garis dengan membulatkan nilai x atau y ke bilangan integer memerlukan waktu. serta variabel x, y maupun m memerlukan bilangan real karena kemiringan merupakan nilai pecahan.
12
GARIS-BRESSENHAM B. Algoritma Bressenham
Bressenham mengembangkan algoritma klasik yang lebih menarik, karena hanya menggunakan perhitungan matematik dengan bantuan bilangan integer. Dengan demikian tidak perlu membulatkan nilai posisi pixel setiap waktu. Algoritma garis Bressenham disebut juga Midpoint Line Algorithm adalah algoritma konversi penambahan nilai integer yang juga dapat diadaptasi untuk menggambar sebuah lingkaran.
13
GARIS-BRESSENHAM Langkah-langkah pembentukan garis berdasarkan algoritma Bressenham adalah: 1. Tentukan dua titik yang akan dihubungkan dalam pembentukan garis. 2. Tentukan salah satu sebagai titik awal (x1, y1) dan titik akhir (x2, y2). Hitung dx, dy, 2dy dan 2dy - 2dx Hitung parameter : po = 2dy - dx 5. Untuk setiap xk sepanjang jalur garis, dimulai dengan k=0 - bila pk < 0 maka titik selanjutnya adalah: (xk+1, yk) dan pk+1 = pk + 2dy - bila tidak, titik selanjutnya adalah: (xk+1, yk+1) dan pk+1 = pk + 2dy – 2dx 6. Ulangi nomor 5 untuk menentukan posisi pixel berikutnya, sampai x = x1 atau y = y1.
14
GARIS-BRESSENHAM Perhatikan ilustrasi gambar berikut ini Jalur garis
yk+4 yk+3 yk+2 yk+1 yk xk xk+1 Xk+2 xk+3 xk+4 Jalur garis (xk+1, yk+1) (xk+1, yk)
15
GARIS-BRESSENHAM
16
Grafika Komputer Materi II
17
GARIS-BRESSENHAM
18
GARIS-BRESSENHAM
19
GARIS-BRESSENHAM
20
GARIS-BRESSENHAM Prosedur Algoritma Garis Bressenham
Prosedur pembentukan garis lurus dengan algoritma Bressenham meng-gunakan bahasa pemrograman C adalah sebagai berikut: void linebress(int xa,ya,xb,yb) { int dx = abs(xb-xa),dy=abs(yb-ya); int p = 2*dy-dx, xEnd; int duaDy = 2*dy, duaDyDx = 2*(dy-dx); if(xa>xb) { x=xb; y=yb; xEnd=xa;} else { x=xa; y=ya; xEnd=xb;} SetPixel(x,y); while(x<xEnd) { x++; if(p<0) p+=duaDy; { y++; p+=duaDyDx; } setPixel(x,y); } };
21
TUGAS 1. Diketahui 2 buah titik A(2,2) sebagai titik awal dan B(8,10) sebagai titik akhir, tentukan titik2 yg menghubungkan kedua titik tersebut dengan Algorithma DDA dan Bressenham. 2. Buatlah aplikasi program komputer dgn sebuah bahasa pemrograman yg anda kuasai untuk implementasi soal nomer 1 tersebut.
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.