Algoritma Garis Lurus arls adalah penghubung anLara dua buah LlLlk (LlLlk awal dan LlLlk akhlr) persamaan garls lurus dlnyaLakan dalam rumus ymx+c ulmana m adalah gradlen yang dldapaLkan darl hasll pembaglan delLa? dengan delLax dan c adalah sebuah konsLanLa 8erangkaL darl slnl klLa coba mulal unLuk membahas algorLlma apa sa[a yang dlgunakan dalam pembuaLan garls lurus ika dimisalkan pada dua titik(x0,y0 dan x1,y1) akan dibuat sebuah garis lurus, kita dapat menentukan nilai 'm' dan 'b dengan persamaan berikut: y1y0 m x1x0
b y1m.x1
algoritma untuk menggambar garis pada komputer didasarkan pada dua persamaan di atas. dimana m adalah gradien atau kemiringan garis tersebut. Algoritma digital differential analyzer(DDA), !rinsip algoritma ini adalah mengambil nilai integer terdekat dengan alur garis berdasarkan atas sebuah titik yang telah ditentukan sebelumnya(titik awal garis). Algoritma pembentukan garis DDA: 1.Tentukan dua titik yang akan dihubungkan dalam pembentukan garis. 2.Tentukan salah satu titik sebagai awal(x0,y0) dan titik akhir(x1,y1). 3.Hitung dxx1x0, dan dy y1y0. 4.Tentukan langkah, yaitu dengan cara arak maksimum umlah penambahan nilai x maupun nilai y, dengan cara: Bila nilai absolut dari dx lebih besar dari absolut dy, maka langkah absolut dari dx. Bila tidak maka langkah absolutdari dy 5.Hitung penambahan koordinat pixel yaitu xincrementdx/langkah, dan yincrementdy/langkah 6.Koordinat selanutnya (xxincrement, yyincrement) 7.!osisi pixel pada layar ditentukan dengan pembulatan nilai koordinat tersebut. 8.Ulangi nomor 6 dan 7 untuk menentukan posisi pixel selanutnya,sampai xx1 dan yy1. ConLoh rosedur uuA dalam !AvA public class TitikPerpotonganLurusSiku , public static Double, cariTitikInterseksi( double x, double y, double m, double c ) , Double, titik = new Double2,; //index 0 = x, index 1 = y titik0, = ( x + m (y - c) ) / ( 1 + Math.pow(m, 2)); titik1, = ( m (x + m y) + c ) / ( 1 + Math.pow(m, 2)); return titik; ,
public static void main(String, args) , Double titik,; double x = 10.0; double y = 6.0; titik = cariTitikInterseksi(x, y, 5, -7); System.out.println(titik0, + "," + titik1,); , , !030lasa3 kod0 ualam uuA yang klLa lakukan adalah mencarl nllal absoluL darl delLax dan delLa? dan kemudlan dlbandlngkan unLuk menenLukan SLeps lnl nanLlnya dlgunakan sebagal nllal pembaLas perulangan Sehlngga dalam saLu perulangan x dan y dl lncremenLkan bersama
Algoritma garis Br0ss03am Tidak seperti Algoritma DDA, Algoritma Bressenham tidak membulatkan nilai posisi pixel setiap waktu. Algoritma Bressenham hanya menggunakan penambahan nilai integer yang uga dapat diadaptasi untuk menggambar lingkaran. Berikut ini langkah langkah untuk membentuk garis menurut algoritma Bressenham: 1. Tentukan dua titik yang akan dihubungkan 2. Tentukan salah satu titik di sebelah kiri sebagai titik awal yaitu(x0,y0) dan titik lainnya sebagai titik akhir(x1,y1). 3.Hitung dx,dy,2dx dan 2dy2dx. 4.Hitung parameter p02dydx 5.Untuk setiap xk sepanang alur garis, dimulai dengan k0, Bila pk 0, maka titik selanutnya adalah (xk1,yk), dan pk1pk2dy Bila tidak, maka titik selanutnya adalah(xk1, yk1), dan pk1pk2dy2dx. 6.Ulangi langkah nomor 5 untuk menentukan posisi pixel selanutnya, samapai xx1 dan yy1. Contoh !rosedur algoritma Bressenham untuk menggambar garis dari titik (10,10) ke (500,10). Menggunakan pascal: ;ar dx,p,dy,xEnd:integer; x,y:real; begin dx:= abs(xb-xa); dy:= abs(yb-ya); p:=2dy-dx; if xa xb then begin x:=xb; y:=yb; xEnd:=xa; end else begin x:=xa; y:=ya; xEnd:=xb; end; putPixel(round(x),round(y),30); while x < xEnd do begin x:=x+1; if p < 0 then p:=p+(2dy) else begin y:=y+1; p:=p+(2(dy-dx)); end; putPixel(round(x),round(y),30); end; end; begin ini t; DrawBressLine(10,10,500,10); readkey; destroy; end.
AIgoritma Lingkaran dan EIIips - AIgoritma Pembentukan Lingkaran Lingkaran merupakan objek grafik yang paling sering digunakan pada grafik sederhana. Lingkaran dapat didefinisikan sebagai kumpulan titik yang memiliki jarak r dari posisi pusat .y.. Persamaan lingkaran dengan titik pusat .y. dan radius r dapat dispesifikasikan menggunakan koordinat re.tangular berikut : (x - xc)2 + (y-yc)2 = r2 Lingkaran juga dapat didefinisikan menggunakan koordinat polar. dan dapat ditulis sebagai suatu fungsi : fy = + y r
Kita dapat menggambarkan lingkaran dengan menggunakan persamaan koordinat re.tangular diatas akan tetapi pendekatan ini menimbulkan dua masalah yaitu : 1. Persamaan tersebut mengandung perhitungan akar yang operasinya memakan waktu. . Timbul gap yang .ukup signifikan pada lingkaran ketika digambarkan. Lingkaran dapat juga digambarkan dengan menggunakan persamaan koordinat polar tetapi fungsi trigonometri juga membutuhkan .ost yang tidak sedikit sehingga algoritma yang disusun tidak akan efisien. Untuk mengatasi masalah yang timbul dari penerapan koordinat polar maupun re.tangular Bresenham menyusun suatu algoritma pembentukan lingkaran yang hanya menggunakan aritmetika integer. Se.ara prinsip algoritma ini sejenis denga algoritma penggambaran garis yang disusun oleh orang yang sama. Lingkaran merupakan objek yang simetris sehingga karakteristik ini dapat dimanfaatkan untuk mengurangi pekerjaan pada saat menggambar lingkaran. Lingkaran dibagi menjadi 8 oktan lihat gambar 3. misalkan kita menyusun algoritma untuk menggambarkan lingkaran di oktan pertama maka koordinat untuk 7 oktan selanjutnya dapat ditentukan pada table 3.1 berikut : TabeI 3.1 Koordinat simetri 8 oktan
Tahapan penggambaran lingkaran dengan menggunakan algoritma yang dikenal dengan nama algoritma midpoint ini adalah sebagai berikut : 1. nput jari-jari r dan koordinat pusat lingkaran . y. kemudian tntukan koordinat untuk titik awal yaitu (xo, y0) = (0, r). 2. itung nilai awal untuk parameter keputusan p0 = 1 - r 3. Untuk setiap k mulai dari k=0 lakukan langkah berikut : jika pk<0 maka titik selanjutnya pada lingkaran dengan pusat 00 adalah (xk + 1, yk) dan pk+1 = pk + 2 xk+1 + 1, jika pk_0 titik berikutnya adalah (xk+ 1, yk - 1) dan pk+1 = pk + 2 xk+1 + 1 - 2 yk+1 dimana 2 xk+1 = 2 xk + 2 dan 2 yk+1 = 2 yk - 2 4. Tentukan titik simetri untuk 7 oktan lainnya dengan menggunakan table 3. 5. 5.Untuk lingkaran dengan pusat bukan di 00. Pindahkan setiap posisi piel hasil perhitungan y dengan rumus x = x + xc , y = y + yc 6. Ulangi langkah 3 sampai 5 hentikan ketika x >= y Contoh Penerapan algoritma midpoint untuk mengggambarkan lingkaran. Contoh 1 : Iingkaran dengan persamaan X2 + Y2 =100 Oktan x y 1 y -X Y 3 X -Y 4 -X -Y 5 Y 6 -y X 7 Y -X 8 -y -
AIgoritma Titik Tengah Lingkaran (Midpoint CircIe AIgorithm) Bila diketahui suatu titik : kyk maka titik berikutnya apakah di k+1 yk or k+1 yk-1 ?
publi. .lass lingkaran { publi. stati. void main String[]args { new FrameUtama; } }
AIgoritma Pembentukan EIIips Ellips merupakan salah satu objek grafis dengan persamaan koordinat re.tangular sebagai berikut :
dan persamaan polar :
Teknik yang digunakan untuk menggambarkan garis dan lingkaran yang telah dibi.arakan sebelumnya dapat diimplementasikan untuk menggambarkan ellips. Elipps merupakan objek yang memiliki empat bagian yang simetris seperti digambarkan pada gambar 3.. dari karakteristik ini dapat disusun suatu algoritma yang memplot piel di kuadran pertama dan menentukan titik di tiga kuadran lainnya. Kuadran pertama dibagi menjadi dua region dan dengan menggunakan algoritma midpoint ellipse plot titik untuk region pertama kemudian koordinat akhir pada region menjadi koordinat awal untuk region .