Metode DDA Metode DDA Metode Bresenham Metode Bresenham

1.1 Metode DDA

Menggunakan prinsip menggambar garis yang melalui 2 titik dengan mengikuti persamaan: Y – Y1 = Y2-Y1X2-X1. X – X1 Acuan grafik adalah koordinat kartesius tangan kanan dengan titik awal tengah monitor. Penggambaran oleh komputer harus dikonversikan ke koordinat kartesius tangan kanan.

1.1 Metode DDA

Menggunakan prinsip menggambar garis yang melalui 2 titik dengan mengikuti persamaan: Y – Y1 = Y2-Y1X2-X1. X – X1 Acuan grafik adalah koordinat kartesius tangan kanan dengan titik awal tengah monitor. Penggambaran oleh komputer harus dikonversikan ke koordinat kartesius tangan kanan. 30102012 Komputer Grafik Widjianto versi 2012 Procedure GarisDDA; Begin {x0, y0 adalah titik awal sumbu koordinat human, ambil tengah2 monitor x1, y1, x2, y2 adalah titik ujung garis yang diinputkan melalui edit} x1 := StrToInteditx1.Text; x2 := StrToInteditx2.Text; y1 := StrToIntedity1.Text; y2 := StrToIntedity2.Text; delta := absx2 – x1; if absy2-y1 delta then delta := absy2-y1; xNaik := x2 – x1delta; yNaik := y2 - y1 delta; x := x1; y := y1; For k := 1 to delta do Begin Canvas.Pixels[truncx0 + x, truncy0 – y] := warna; x := x + xNaik; y := y + yNaik; End; End; Procedure GarisDDA; Begin {x0, y0 adalah titik awal sumbu koordinat human, ambil tengah2 monitor x1, y1, x2, y2 adalah titik ujung garis yang diinputkan melalui edit} x1 := StrToInteditx1.Text; x2 := StrToInteditx2.Text; y1 := StrToIntedity1.Text; y2 := StrToIntedity2.Text; delta := absx2 – x1; if absy2-y1 delta then delta := absy2-y1; xNaik := x2 – x1delta; yNaik := y2 - y1 delta; x := x1; y := y1; For k := 1 to delta do Begin Canvas.Pixels[truncx0 + x, truncy0 – y] := warna; x := x + xNaik; y := y + yNaik; End; End; 30102012 Komputer Grafik Widjianto versi 2012

1.2 Metode Bresenham

Metode ini hanya menggunakan bilangan integer saja, sehingga penggunaan memori lebih sedikit. Dasar Bresenham adalah menggambar garis dengan slope positip ≤ 1. Untuk garis dengan slope selain itu harus dilakukan transformasi nilai. Hasilnya ditransformasikan balik dan kemudian baru digambarkan. Nilai x2 harus selalu lebih besar dari nilai x1. Nilai x dan y berubah dengan nilai 1 atau nol. Perubahan ini berdasarkan pada nilai faktor Bresenham e dengan nilai awal: e = 2 DeltaY – DeltaX

1.2 Metode Bresenham

Metode ini hanya menggunakan bilangan integer saja, sehingga penggunaan memori lebih sedikit. Dasar Bresenham adalah menggambar garis dengan slope positip ≤ 1. Untuk garis dengan slope selain itu harus dilakukan transformasi nilai. Hasilnya ditransformasikan balik dan kemudian baru digambarkan. Nilai x2 harus selalu lebih besar dari nilai x1. Nilai x dan y berubah dengan nilai 1 atau nol. Perubahan ini berdasarkan pada nilai faktor Bresenham e dengan nilai awal: e = 2 DeltaY – DeltaX Jika e 0 maka y naik 1 dan e = e + 2 DeltaY – DeltaX. Jika e = 0 maka y tetap dan e = e + 2 DeltaY 30102012 Komputer Grafik Widjianto versi 2012 {x1, y1, x2, y2 adalah koordinat titik ujung garis komponen edit} x1 := StrToInteditx1.Text; x2 := StrToInteditx2.Text; y1 := StrToIntedity1.Text; y2 := StrToIntedity2.Text; Konversi ke Bresenham Dasar if x2 x1 then begin tukarx1,x2; tukar y1,y2; end; DeltaX := x2 – x1; DeltaY := y2 – y1; e := 2 DeltaY – DeltaX; x := x1; y := y1; For k := 1 to DeltaX do Begin Canvas.Pixels[x0 + x, y0 – y] := clWarna; If e 0 then Begin y := y + 1; e := e + 2 DeltaY – DeltaX; End Else e := e + 2 DeltaY; x := x + 1; End; End; {x1, y1, x2, y2 adalah koordinat titik ujung garis komponen edit} x1 := StrToInteditx1.Text; x2 := StrToInteditx2.Text; y1 := StrToIntedity1.Text; y2 := StrToIntedity2.Text; Konversi ke Bresenham Dasar if x2 x1 then begin tukarx1,x2; tukar y1,y2; end; DeltaX := x2 – x1; DeltaY := y2 – y1; e := 2 DeltaY – DeltaX; x := x1; y := y1; For k := 1 to DeltaX do Begin Canvas.Pixels[x0 + x, y0 – y] := clWarna; If e 0 then Begin y := y + 1; e := e + 2 DeltaY – DeltaX; End Else e := e + 2 DeltaY; x := x + 1; End; End; 30102012 Komputer Grafik Widjianto versi 2012 Metode ini menggunakan persamaan y = a x + b, a adalah slope garis dan b adalah titik potong garis dengan sumbu y. Menggambar garis dengan metode ini cukup diketahui nilai a, b, nilai x awal dan nilai x akhir, dimana x awal x akhir. Metode ini menggunakan persamaan y = a x + b, a adalah slope garis dan b adalah titik potong garis dengan sumbu y. Menggambar garis dengan metode ini cukup diketahui nilai a, b, nilai x awal dan nilai x akhir, dimana x awal x akhir. Jika XAwal XAkhir maka lakukan pertukaran. Caranya: Temp := XAwal; XAwal := XAkhir; XAkhir := Temp; 30102012 Komputer Grafik Widjianto versi 2012 Procedure GarisPolinom; Var x, temp : integer; Begin a dan b adalah besaran tetap, Xawal dan Xakhir koordinat-x ujung garis diinputkan melalui edit if xAkhir xAwal then begin Temp := XAwal; XAwal := XAkhir; XAkhir := Temp; end; for x := xawal to xakhir do Begin y := a x + b; Canvas.Pixels[x0 + x, y0 –Round y] := clWarna; End; End; Procedure GarisPolinom; Var x, temp : integer; Begin a dan b adalah besaran tetap, Xawal dan Xakhir koordinat-x ujung garis diinputkan melalui edit if xAkhir xAwal then begin Temp := XAwal; XAwal := XAkhir; XAkhir := Temp; end; for x := xawal to xakhir do Begin y := a x + b; Canvas.Pixels[x0 + x, y0 –Round y] := clWarna; End; End; 30102012 Komputer Grafik Widjianto versi 2012

2. Menggambar Lingkaran

Menggambar lingkaran dengan pixel dapat menghasilkan lingkaran 8 warna, 4 warna, 2 warna atau 1 warna. Lingkaran mempunyai 8 simitris putar, lingkaran dapat dibagi menjadi 8 bagian yang simetris sama bagian tersebut dapat diputar sehingga membentuk lingkaran penuh. Sehingga untuk menggambar lingkaran cukup menscan 18 bagian saja, sedangkan bagian lainnya dicopikan dari bagian tersebut. Keuntungan cara ini adalah kita dapat memilih warna yang berbeda dari tiap bagian tersebut.

2. Menggambar Lingkaran

Menggambar lingkaran dengan pixel dapat menghasilkan lingkaran 8 warna, 4 warna, 2 warna atau 1 warna. Lingkaran mempunyai 8 simitris putar, lingkaran dapat dibagi menjadi 8 bagian yang simetris sama bagian tersebut dapat diputar sehingga membentuk lingkaran penuh. Sehingga untuk menggambar lingkaran cukup menscan 18 bagian saja, sedangkan bagian lainnya dicopikan dari bagian tersebut. Keuntungan cara ini adalah kita dapat memilih warna yang berbeda dari tiap bagian tersebut. Ada 2 metode: metode polinom dan metode trigonometri 30102012 Komputer Grafik Widjianto versi 2012

2.1 Metode Polinom