You are on page 1of 7

Atribut PrimitiI

BAB-3
ATRIBUT PRIMITIF 2D
Yang termasuk dalam atribut primitive adalah titik dan garis. Pembetuk garis yang dikenal
adalah algoritma DDA, dan Bresenham.
0 : I Gusti Ngura Suryantara,S.Kom., M.Kom
3.1. PENDAHULUAN
Yang merupakan atribut primitiI adalah: titik dan garis. Ada beberapa metode pembentuk garis
yang umum digunakan yaitu:Agoritma DDA (Digital Defferential Analyzer dan Agoritma
Br0ss0nam
3.1.1. DDA (Digital Defferential Analyzer
Garis merupakan kumpulan dari titik-titik, untuk membentuk garis lurus adalah dengan
mengetahui titik awal dan titik akhir. Dengan mengetahui titik awal dan titik akhir maka kita
dapat membentuk garis. Untuk menggambarkan proses pembuatan garis dari titik awal ke titik
akhir ada berbagai algoritma. Algoritam yang umum adalah DDA dan Bresenham.
B0rikur ini adaa agoritma DDA
1. Tentukan 2 buah titik.
2. Tentukan yang menjadi titik awal (X
0
,Y
0
) dan titik akhir (X
1
,Y
1
).
3. Hitung Dx dan D
y
D
x
X
1
-X
0
dan

D
y
Y
1
Y
0

4. Bandingkan Abs(D
x
) dan Abs(D
y
)Jika Abs(D
x
) ~ Abs(D
y
) makaSteps Abs(D
x
) bila tidak
Steps Abs(D
y
)
5. Hitung penambahan koordinat pixel, yaitu:Xincrement dx/steps, danYincrement
dy/steps.
6. Koordint selanjutnya, yaituXXincrementYYincrement
7. Posisi pixel ditentukan dengan pembulatan nilai koordinat tersebut.
8. Ulangi langkah 6 dan 7 untuk posisi selanjutnya sampai X X
1
, Y Y
1

DDA (baasa pascaProc0dur0 DDA;
B0gin
Write(Masukkan Nilai X0 : );
Readln(X0); Write(Masukkan Nilai Y0 : );
Readln(Y0); Write(Masukkan Nilai X1 : );
Readln(X1); Write(Masukkan Nilai Y1 : );
Readln(Y1);
Dx: X1-X0;
Dy: Y1-Y0;
If Abs(Dx > Abs(Dy T0n
Steps: Abs(Dx)
Es0
Steps: Abs(Dy);
Endif
PutPixel(x,y,Hitam);
For x 1 to St0ps Do
X : X Xincrement;
Y : Y Yincrement;
PutPixel(x,y,Hitam);
End;
End;
Conto
Diketahui 2 buah titik A(10,10) dan titik B(17,16), bila titik A sebagai titik awal dan titik B
sebagai titik akhir maka buatlah garis yang menghubungkan titik tersebut dengan menggunakan
algoritma DDA.
awab
Titik Awal A(10,10)
Titik Akhir B(17,16)
D
x
(X
1
-X
0
) (17-10) 7
D
y
(Y
1
-Y
0
) (16-10) 6
Abs(D
x
) Abs(7) 7
Abs(D
y
) Abs(6) 6
Abs(D
x
) ~ Abs(D
y
) maka
Step Abs(D
x
) 7
Xincrement Dx / Steps. 7 / 7 1
Yincrement Dy / Steps. 6 / 7 0,86
Tab0 3.1. ilai perhitungan
K X Y Xinc Yinc
- - - 10 10
0 11 10,86 11 11
1 12 11,71 12 12
2 13 12,57 13 13
3 14 13,43 14 14
4 15 14,28 15 15
5 16 15,14 16 16
6 17 16 17 16
3.1.2.BRESSENHAMALGRITMA BRESSENHAM
Tujuan dari algoritma Br0ss0nam ini adalah untuk menghindari pembulatan nilai seperti pada
algoritma DDA.
1. Tentukan dua titik yang akan dihubungkan dalam pembentukan garis.
2. Tentukan salah satu titik di sebelah kiri sebagai titi awal, yaitu (x
0
,y
0
) dan titik lainnya
sebgai titik akhir (x
1
,y
1
).
3. Hitung d
x
,d
y
,2
dx
dan 2
dy
-2
dx
.
4. Hitung parameter P
0
2
dy
-d
x

5. Untuk setiap X
k
sepanjang jalur garis, dimulai dengan k0,bila p
k
0, maka titik
selanjutnya adalah (x
k
1, y
k
), dan P
k1
P
k
2
dy
bila tidak, maka titik selanjutnya adalah
(x
k
1,y
k
1), dan P
k1
P
k
2
dy
-2
dx

6. Ulangi langkah no 5 untuk menentukan posisi pixel selanjutnya, sampai x x
1
dan y y
1
.
Sub Rutim B0rss0nam daam CVoid in0 (int xa, ya, xb, yb, xEnd; fot x,y

Int dx abs(xb-xa), dyabs(yb-ya);
Int p 2*dy-dx;
Int twoDy 2*dy,
twodyDx 2*(dy-dx);
If (xa>xb

X xb;
Y yb;
Xend xa;
}
Es0

X xa;
Y ya;
xEnd xb;
}
SetPixel(x,y);
i0 (x<xEnd

X;
If (p<0
P twody;
Es0

Y;
P twoDyDx;
}
S0tPix0(x,y;
}
};
Conto
Berdasarkan contoh pada algoritma DDA buatlah dengan metode bresenham.
AAB
dx abs(xb xa) abs(17 10 ) 7
dy abs(yb ya) abs(16 10) 6
p 2 * dy - dx 2 * 6 7 5
twody 2 * dy 2 * 6 12
twodydx 2 * (dy dx ) 2 * ( 6 7 ) -2
Periksa xa dan xb
xa 10 xb 17Maka
x xa 10
y ya 10
Xend xa 17
Ulangi selama x xend
K0: x x 1 10 1 11
Periksa nilai p , dimana p 5
y y 1 10 1 11
p p twodydx 5 (-2) 3
K1: x x 1 11 1 12
Periksa nilai p, dimana p 3
y y 1 11 1 12
p p twodydx 3 (-2) 1
K2: x x 1 12 1 13
Periksa nilai p, dimana p 1
y y 1 12 1 13
p p twodydx 1 (-2) -1
K3: x x 1 13 1 14
Periksa nilai p, dimana p -1 Nilai y tetap yaitu y13
p p twody (-1) 12 11
K4: x x 1 14 1 15
Periksa nilai p, dimana p 11
y y 1 13 1 14
p p twodydx 11 (-2) 9
K5: x x 1 15 1 16
Periksa nilai p, dimana p 9
y y 1 14 1 15
p p twodydx 9 (-2) 7
K6: x x 1 16 1 17
Periksa nilai p, dimana p 7 y y 1 15 1 16
p p twodydx 7 (-2) 5
Proses berhenti karena x x
1
dan y y
1

Masukkan nilai kedalam tabel, seperti pada tabel 3.2. Tab0 3.2.
asil penelusuran dengan bressenham
K P
k
(X
k+1
, Y
k+1

- - 10,10
0 3 11,11
1 1 12,12
2 -1 13,13
3 11 14,13
4 9 15,14
5 7 16,15
6 5 17,16
LatianDiketahui 2 buah titik yaitu, A(25,27) dan B(20,17), buatlah garis dengan menggunakan
algoritma DDA dan Bressenham.

You might also like