| DDA | Bresenham | Mari Cuba | Latihan |
Algoritma Bresenham |
Menggunakan pengiraan berasaskan integer. Sebagai contoh suatu piksel pertama --> (10,11) maka piksel kedua sama ada berada pada piksel (11,11) atau (11,12) |
|
|
|
| Rajah 1.4 | |
Pertimbangkan garis lurus berkecerunan +ve, m < 1, mula daripada kiri dengan titik awal (x,y) |
|
Persampelan adalah pada setiap unit x |
|
Piksel pada kedudukan paling hampir dengan laluan (path) garis lurus akan diplot |
|
Titik (xk, yk telah diplot sehingga ke titik seterusnya) |
|
daripada pers (1) |
|
Y = m (xk + 1 ) + c -------pers (10) |
|
manakala |
|
d1 = y - y k |
|
= m (xk + 1) + c - yk |
|
dan |
|
d2 = (yk + 1 ) - y |
|
= yk + 1 - m (xk + 1) + c |
|
|
|
| Rajah 1.5 | |
imej oleh itu.... d1 - d2 = 2 m (xk + 1) - 2yk+ 2c - 1 ------pers (11) |
|
parameter penentu diperkenalkan, Pk | |
|
|
|
|
|
| dimana | |
|
|
|
| Gantikan k+1 pada pers (12) | |
|
|
|
| Jadi | |
![]() |
|
| P0
diperolehi dengan masuk x0, y0 dan m = |
|
|
P0
= 2 |
|
|
| |
| Algoritma Bresenham bagi garis lurus dengan |m| < 1 diberikan seperti berikut : | |
| 1. Input 2 titik hujung garis lurus, simpan 2 titik hujung sebelah kiri sebagai (x0,y0) | |
| 2. Plotkan titik awal iaitu (x0,y0) | |
| 3. Kirakan pemalar
|
|
|
P0 = 2 |
|
| 4. Pada setiap kedudukan persampelan xk (disepanjang laluan garis lurus) bermula daripada k = 0, uji pemalar | |
| penentu : | |
| Jika Pk < 0, plotkan titik ( xk+1, yk) dan | |
| Jika Pk > 0, plotkan titik (xk+1, yk+1) dan | |
|
5. Ulang langkah 4
sebanyak
|
|
| Carta alir bagi algoritma Bresenham | |
| |
| |
|