Вы находитесь на странице: 1из 7

KOMPITLR GRAIIK

- Mcmbanun Alori|ma Gralik Ras|cr


- Translormasi `D Dan Translormasi Komposisi



Kclompok `
Disusun olch:
Dian Laras|ika NPM : 20084`500712
Vindu Apriansvah NPM : 20084`500719
Iauzi Zul Azni NPM : 20084`500682
Vic|or A. Hidava| NPM : 20084`500740

Un|vers|tas Indraprasta GkI
AlamaL !l nangka no38C 1an[ung 8araL (18 SlmaLupang) !agakarsa !akarLa SelaLan 12330
1elp/lax (021) 7818718 78833283 eMall n|vers|tyQn|ndraac|d webslLe
http]]wwwn|ndraac|d]
BAB I
Membangun Algoritma GraIik Raster
..............(blom dapet)..............

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 ?




import java.swing.*;
import java.awt.*;

.lass Kanvas etends Canvas
{
publi. void paint raphi.s ling
{
ling.drawOval1 1 100 100;
}
}

.lass FrameUtama etends JFrame
{
private Kanvas kanvas = new Kanvas;

FrameUtama
{
superContoh Menggambar Lingkaran;
setDefaultCloseOperationJFrame.EXT_ON_CLOSE;
setLo.ation10 15;
setSize75 85;

getContentPane.setLayoutnew BorderLayout;
getContentPane.addkanvasBorderLayout.CENTER;

show;
}
}

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 .

Вам также может понравиться