1 / 30

ALGORITHMA GARIS

ALGORITHMA GARIS. Hieronimus Edhi Nugroho, M.Kom. Algorithma Garis. Masalah : Pixel mana yang harus dipilih untuk menggambar sebuah garis ?. ALGORITHMA GARIS. Algorithma garis adalah algorithma untuk menentukan lokasi pixel yang paling dekat dengan garis sebenarnya ( actual line )

clancy
Télécharger la présentation

ALGORITHMA GARIS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ALGORITHMA GARIS Hieronimus Edhi Nugroho, M.Kom

  2. Algorithma Garis • Masalah : • Pixel mana yang harus dipilih untuk menggambar sebuah garis ? H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  3. ALGORITHMA GARIS • Algorithma garis adalah algorithma untuk menentukan lokasi pixel yang paling dekat dengan garis sebenarnya (actual line) • Ada tiga algorithma utama untuk menggambar garis : • Line Equation • DDA Algorithm • Bresenham’s Algorithm H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  4. (x2,y2) (x1,y1) (x2,y2) (x1,y1) (x1,y1) (x2,y2) (x1,y1) (x2,y2) Kuadran Garis H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  5. 8 (x1,y1) 7 6 5 B (x2,y2) 4 3 A 2 (x2,y2) 1 (x1,y1) 0 1 2 3 4 5 6 7 8 9 Kuadran Garis 8 (x1,y1) 7 6 D 5 (x2,y2) 4 (x2,y2) 3 2 C 1 (x1,y1) 0 1 2 3 4 5 6 7 8 9 Di kuadran mana garis A ? Di kuadran mana garis B ? Dapatkah garis A dan B dinyatakan sebagai garis dengan kuadran yang sama ? Bagaimana caranya ? Bagaimana halnya dengan garis C dan D ? H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  6. Kuadran Garis • Garis A : (3 ; 1) – (8 ; 4) • Garis A berada di kuadran I • Garis B : (3 ; 7) – (1 ; 2) • Garis B berada di kuadran III • m = (2 – 7) / (1 – 3) = -5 / -2 = 2.5 • tetapi apabila garis B dinyatakan sebagai (1 ; 2) – (3 ; 7) maka garis B akan berada di kuadran I • m = (7 – 2 ) / ( 3 – 1) = 5 / 2 = 2.5 H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  7. LINE EQUATION • Sebuah garis lurus dapat diperoleh dengan menggunakan rumus : y = mx + b • dimana : • m = gradien • b = perpotongan garis dengan sumbu y. y2 y1 b x2 x1 H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  8. (1) (2) LINE EQUATION • Apabila dua pasang titik akhir dari sebuah garis dinyatakan sebagai (x1,y1) and (x2, y2), maka nilai dari gradien m dan lokasi b dapat dihitung dengan : H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  9. 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 Contoh • Gambar garis (0,1) – (5,7) dengan menggunakan Line Equation x1 = 0 y1 = 1 x2 = 5 y2 = 7 m = (7-1)/(5-0) = 1,2 b = 1 – 1,2 * 0 = 1 H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  10. miring 45o y2 tegak y2 mendatar y1 y1 y1 x1 x2 x1 x2 x1 m = tak terdefinisi m = 0 m = 1 y2 cenderung mendatar cenderung tegak y2 y1 y1 x1 x2 x1 x2 0 < m < 1 m > 1 Gradien dan Tipe Garis H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  11. 8 7 6 5 B 4 3 A 2 1 0 1 2 3 4 5 6 7 8 9 Tipe Garis Dapatkah anda mencari perbedaan yang esensial antara garis A dan B (misal : gradien, pertambahan x dan y) ? H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  12. Tipe Garis • Garis A : (3;1) – ( 8;4) • m = (y2 – y1) / (x2 – x1) = (4-1)/ (8-3) = 3/5= 0,6 • 0 < m < 1 • xi+1 = xi + 1 ; yi+1 = yi + d1 • Garis B : (1;2) – (2;7) • m = (7-2) / (2-1) = 5 / 1 = 5 • m > 1 • xi+1 = xi + d2 ; yi+1 = yi + 1 • Berapa nilai d1 dan d2 ? H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  13. ALGORITHMA DDA • Digital differential analyzer (DDA) merupakan algorithma untuk menghitung posisi pixel disepanjang garis dengan menggunakan posisi pixel sebelumnya. • Algorithma berikut ini menggunakan asumsi bahwa garis berada di kuadran I atau II serta garis bertipe cenderung tegak atau cenderung mendatar. H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  14. (3) (4) Algorithma DDA • Untuk garis dengan 0 < m < 1, maka xi+1 = xi +1 dan : • Untuk garis dengan m > 1, maka yi+1 = yi + 1 dan : H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  15. (5) (6) Algorithma DDA • Garis dengan 0 > m > -1, maka xi+1 = xi-1 dan • Sedangkan bila m < -1, maka yi+1 = yi+1 dan H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  16. 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 Contoh Algorithma DDA • Gambar garis dari (0;1) – (5;7) dengan menggunakan DDA. x1=0,y1=1 x2=5,y2=7 m = (7-1)/(5-0) = 1,20 1/m=1/1,20 = 0,83 H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  17. 3 2 1 0 actual line 0 1 2 3 4 Algorithma Bresenham • Bresenham mengembangkan algorithma yang lebih efisien. • Algorithma ini mencari nilai integer yang paling mendekati garis sesungguhnya (actual line). • Algorithma ini tidak memerlukan pembagian. H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  18. Algorithma Bresenham • Algorithma Bresenham yang disajikan berikut ini hanya dapat digunakan untuk garis yang berada di kuadran I dan 0 < m < 1. • Anda yang ingin mempelajari pembuktian matematis dari algorithma Bresenham silahkan membaca buku Computer Graphics (Hearn dan Baker) H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  19. Xi+1,yi+1 Actual line xi,yi Xi+1,yi d1 Algorithma Bresenham d1=m – ½, karena d1< 0 atau negatif maka pixel berikutnya adalah pixel (xi+1, yi) H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  20. Xi+1,yi+1 Actual line Xi+1,yi d1 xi,yi Algorithma Bresenham d1=m – ½, karena d1> 0 atau positif maka pixel berikutnya adalah pixel (xi+1, yi+1) H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  21. dx = x2 – x1 ;dy = y2 – y1 d1 =2 * dy ; d2 =2 * (dx – dy) p = d1 – dx x = x1 ; y = y1 p >= 0 x >= x2 p = p + d1 y = y Y T p = p - d2 y = y +1 x = x +1 stop Algorithma Bresenham (0 < m < 1) Y H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  22. Algorithma Bresenham • Gambar garis berikut ini dengan menggunakan algorithma Bresenham : (0;1) – (6;5) (2;2) – (7;5) (0;1) – (5;7) H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  23. 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 Algorithma Bresenham Garis : (0;1) - (6;5) H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  24. 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 Algorithma Bresenham Garis : (2;2) - (7;5) H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  25. 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 Algorithma Bresenham Garis : (0;1) - (5;7) H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  26. Algorithma Bresenham • Mengapa garis (0;1) – (5;7) tidak dapat digambar dengan tepat ? • Garis (0;1) – (5;7) mempunyai m = 1,2, dengan demikian asumsi pada algorithma tersebut tidak tepat dan harus disesuaikan. H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  27. dx = x2 – x1 ; dy = y2 – y1 d1 =2 * dx ; d2 =2 * (dx – dy) p = d1 – dy x = x1 ; y = y1 p >= 0 y >= y2 p = p + d1 x = x Y T p = p + d2 x = x +1 y = y +1 stop Algorithma Bresenham ( m > 1) H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  28. 8 7 6 5 4 3 2 1 0 Garis : (0;1) - (5;7) 0 1 2 3 4 5 6 7 8 9 10 Algorithma Bresenham (m > 1) H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  29. SOAL • Gunakan algorithma DDA dan Bresenham untuk menggambar garis-garis berikut : • (2;1) – (9;6) • (1;2) – (8;5) • (3;1) – (10;5) • (6;7) – (13;10) • (2;8) – (9;11) H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

  30. Atribut Garis • Atribut garis meliputi : • Ketebalan garis • Pola garis • Warna garis H. Edhi Nugroho - Grafika Komputer - Algorithma Garis

More Related