Thursday 28 May 2015

Komputer Grafis 12

Halo semua, sudah lama rasanya tidak posting di blog karna jadwal yang cukup padat. Oke, kembali pada pembahasan komputer grafis pertemuan 12. Pada pertemuan ini akan dibahas mengenai algoritma garis dan lingkaran. Di mana jika biasa kita membuat lingkaran kita menggunakan fungsi ellipse, dalam pembahasan ini kita akan mempelajari algoritma yang gsebenarnya ada di dalam fungsi ellipse. Tidak hanya ellipse, fungsi move to dan line to yang kita gunakan untuk membuat garis juga sebenarnya di dalamnya terkandung algoritma garis. Seperti apa pembahasannya? Langsung saja kita lihat pembahasannya di bawah ini:

Aturan Pembuatan Algoritma Garis:
1.      Tentukan P1(x1,y1) dan P2(x2,y2)
2.      Hitung delta x(dx) dan y (dy) tanpa menggunakan mutlak
dx = x2-x1
dy = y2-y1
3.      Tentukan step
Jika dy > dx maka step = dy
Jika dx > dy maka step = dx
4.      Tentukan x increment dan y increment
xinc = dx/step
yinc = dy/step
5.      Lakukan pengisian nilai pada X dan Y
X = x1
Y = y1
6.      Lakukan loop sejumlah step
Lakukan perhitungan:
            X = x + xinc
            Y = y + yinc
            posx = round(X)
            posy = round(Y)
Gambar pixel pada posisi (posx,posy)

Image1.Canvas.Pixel[posx,posy] := clBlack;

Aturan Pembuatan Algoritma Lingkaran
1.      Tentukan pusat lingkaran (xc,yc) dan jari-jari (r)
2.      Tentukan pencacah
C = 1/r
3.      Lakukan loop dengan pencacah C
Dari sudut 0 sampai 360 untuk degree
Dari sudut 0 sampa 2pi untuk radian
X = xc + r * cos(sudut)
Y = yc + r * sin(sudut)
posx = round(X)
posy = round(Y)
Gambar pixel pada posisi (posx,posy)
Image1.Canvas.Pixel[posx,posy] := clBlack;
Aturan Pembuatan Algoritma Ellipse:
1.      Tentukan pusat lingkaran (xc,yc) dan jari-jari (rx & ry)
2.      Tantukan pencacah menggunakan rx atau ry
Jika rx > ry maka C = 1/rx
Jika ry > rx maka C = 1/ry
4.      Lakukan loop dengan pencacah C
Dari sudut 0 sampai 360 untuk degree
Dari sudut 0 sampa 2pi untuk radian
X = xc + r * cos(sudut)
Y = yc + r * sin(sudut)
posx = round(X)
posy = round(Y)
Gambar pixel pada posisi (posx,posy)
3.      Image1.Canvas.Pixel[posx,posy] := clBlack;

Langsung saja kita masuk dalam pembahasan pada pertemuan 12 yang dilakukan pada praktikum. Kita akan menggambar garis, lingkaran, elipse, elipse miring, dan busur.



Langkah 1: Membuat form dengan tampilan sebagai berikut


X1, Y1, X2, Y2 untuk menentukan titik awal dan akhir yang dituju. Xc dan Yc untuk menentukan titik tengah saat kita menggambar ellipse, lingkaran, ellipse miring, dan busur. Rx dan Ry sebagai jari-jari. Jika Rx dan Ry bernilai sama maka yang dihasilkan adalah lingkaran. Jika Rx > Ry atau Rx < Ry maka akan menghasilkan gambar ellipse.

Langkah 2: Menuliskan kode program untuk button garis



Semua kode program di atas merupakan hasil realisasi dari aturan yang kita pelajari di awal pembahasan pertemuan 12 ini.

Langkah 3: Menuliskan kode program untuk button ellipse / lingkaran


Pada saat while, kita looping sudut mulai dari nol sampai 360 untuk degree, dan daro nol sampai 2pi untuk radian. Karena yang bertambah dalam hal ini loopingnya adalah sudut, agar bisa menggambar lingkaran ataupun ellise.

Langkah 4: Menuliskan kode program untuk button ellipse miring


Ketika X dan Y dilooping dengan sudut dan pencacah, X dan Y langsung dirotasikan sebesar sudut. Sudut yang penulis sertakan adalah sudut tetap yaitu 30 untuk degree.

Langkah 5: Menuliskan kode program untuk button Busur


Pada dasarnya jika kita lihat kode program di atas maka kode program ini sebenarnya sama dengan ellipse ataupun lingkaran. Yang membedakan hanya sudut pada saat looping while. Pada busur ini ditentukan untuk range sudutnya dari 0 misalnya sampai 180 untuk degree, atau 0 sampai pi dalam radian.

Langkah 6: Hasil button garis



Langkah 7 : Haisl Button ellispse





Langkah 8: Melihat hasil button ellipse miring



Langkah 9: Melihat hasil button busur



Sekian dari pembahasan pada pertemuan 12 ini mengenai algoritma garis, dan lingkaran. Dari algoritma lingkaran kita dapat membuat lingkaran, ellipse, ellise miring, dan busur. tidak terasa sudah 12 kali pertemuan, satu kali pertemuan lagi maka pembahasan mengenai komputer grafis akan selesai, dan mahasiswa harus siap-siap untuk menghadapi UAS. 

Semoga blog ini bisa membantu para pembaca termasuk teman-teman saya dalam menghadapi ujian nanti.. ^.^ thx

1 comment: