3 komentar 01 Maret 2008

Algoritma Bresenham

1. Tentukan koordinat awal garis (x0,y0)

2. tentukan koordinat akhir garis (x1,y1)

3. Hitung jarak mendatar ke 2 titik (dx)

Dx=x1-x0

4. Hitung jarak horisonal ke 2 titik (dy)

Dy=y1-y0

5. Tentukan faktor pembagi (mencari yg lebih panjang)

Apakah dx>dy,bila ya

Step=dx

Bila tidak

Step=dy

6. Hitung faktor penambah ke koordinat mendatar dan vertikal titik berikut (x_tambah,y_tambah)

X_tambah=dx/step

Y_tambah=dy/step

7. Buat loop mulai titik ke 1 sampai titik ke step

For k=1 to step

8. Hitung koodinat titik berikutnya

X=x+x_tambah

Y=y+y_tambah

9. gambar pikxel pada koordinat (x,y)

Catatan : koordinat x,y harus bulat (integer), sehingga hasil dari perhitungan diatas harus diInteger-kan

10. Ulangi langkah ke 7, dan seterusnya sampai titik ke step



1 komentar

Tugas Grafika Komputer

Membuat titik dengan titik awal dan titik akhir bebas dengan inputan user.

Dengan menggunakan :

  1. Algoritma Bresenham
  2. Perintah MoveTo dan LineTo



Code:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

int x0,y0,x1,y1,dx,dy,step,k;

float x,y,x_tambah,y_tambah;

x0=StrToInt(Edit_X0->Text);

y0=StrToInt(Edit_Y0->Text);

x1=StrToInt(Edit_X1->Text);

y1=StrToInt(Edit_Y1->Text);

dx=x1-x0;

dy=y1-y0;

x=float(x0);y=float(y0);

if(dx>dy)

step=dx;

else

step=dy;

x_tambah=(float)dx/step;

y_tambah=(float)dy/step;

for (k=0;k

{

x+=x_tambah;

y+=y_tambah;

for(int k=0;k<100000;k++){}

Canvas->MoveTo(x0, y0);

Canvas->LineTo(x1, y1);

}

}