Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Dasar teori dan algoritma grafika komputer

Presentasi serupa


Presentasi berjudul: "Dasar teori dan algoritma grafika komputer"— Transcript presentasi:

1 Dasar teori dan algoritma grafika komputer

2 Sub Pokok Bahasan Geometri Dasar Geometri Lanjut Geometri Dua Dimensi
Here comes your footer  Page 2

3 Geometri Dasar

4 Geometri Dasar Sistem koordinat Kuadran garis Gradien
Algoritma garis DDA Algoritma garis Bresenham Algoritma lingkaran Bresenham Grafika Komputer  Page 4

5 Lailatul Husniah, S.ST Sistem koordinat Grafika Komputer  Page 5

6 Sistem Koordinat Pada komputer grafik ada 3 macam sistem koordinat yang harus di perhatikan : Koordinat nyata Koordinat sistem (koordinat cartesian) Koordinat tampilan / layar Grafika Komputer  Page 6

7 Koordinat nyata (World Koordinat)
Adalah koordinat yang pada saat itu objek yang bersangkutan berada. Ex: koordinat sebuah kursi tergantung dari letak kursi itu ada dimana & bagaimana letaknya. Dalam implementasinya koordinat nyata bisa dikatakan sebagai WINDOW yaitu area di dunia nyata yang menunjukkan bagian yang dilihat oleh pemirsa. Grafika Komputer  Page 7

8 Koordinat sistem (koordinat cartesian)
Setiap titik yang digambar dengan teknik point-plotting lokasinya ditentukan berdasarkan sistem koordinat cartesian. Setiap titik ditentukan lokasinya melalui pasangan nilai x dan y. Dimana nilai koordinat x bertambah positif dari kiri ke kanan dan nilai y bertambah positif dari bawah ke atas. Grafika Komputer  Page 8

9 Koordinat sistem (koordinat cartesian)
Grafika Komputer  Page 9

10 Koordinat tampilan/layar
Arah sumbu koordinat kartesian berkebalikan dengan yang digunakan di layar komputer Pada layar komputer sumbu x bertambah positif ke kanan dan sumbu y bertambah positif ke bawah Seperti pada gambar berikut jika sebuah titik pada koordinat cartesian digambar ulang ke layar komputer maka secara visual lokasi titik tersebut akan berubah. Grafika Komputer  Page 10

11 Koordinat tampilan/layar
Grafika Komputer  Page 11

12 Koordinat tampilan/layar
Dalam implementasinya koordinat tampilan/layar bisa dikatakan sebagai VIEWPORT yaitu area di layar monitor yang menunjukkan dimana WINDOW akan ditampilkan Grafika Komputer  Page 12

13 Koordinat tampilan/layar
Grafika Komputer  Page 13

14 Koordinat tampilan/layar
Untuk memetakan sebuah titik di window ke titik di viewport digunakan rumus : Grafika Komputer  Page 14

15 Lailatul Husniah, S.ST Kuadran garis Grafika Komputer  Page 15

16 Garis Garis merupakan salah satu bentuk dasar dari gambar
Sebuah garis dalam grafika disebut segment Garis dibuat dengan menentukan posisi titik diantara titik awal dan akhir dari suatu garis, yaitu (x1,y1) dan (x2,y2) Here comes your footer  Page 16

17 Kuadran Garis Berdasarkan arah garis maka sebuah garis dapat di salah satu area (kuadran). Tanda panah pada arah garis menunjukkan lokasi (x2,y2) Here comes your footer  Page 17

18 Kuadran Garis Pada gambar diatas, garis 1 terletak pada kuadran I, garis 2 di kuadran III, garis 3 di kuadran IV, garis 4 di kuadran II Jadi kuadran garis tidak berhubungan dengan nilai negatif maupun positif tetapi menyatakan arah garis Here comes your footer  Page 18

19 Contoh Here comes your footer  Page 19

20 gradien Grafika Komputer  Page 20

21 Gradien Nilai kecenderungan sebuah garis, disimbolkan dengan huruf m dan dihitung dengan rumus Here comes your footer  Page 21

22 Algoritma garis DDA Grafika Komputer  Page 22

23 Algoritma Garis DDA (Digital Differential Analyzer)
Merupakan salah satu algoritma menggambar garis yang sederhana Bentuk garis : Cenderung mendatar Cenderung tegak Miring 450 Gradien bernilai 0 < m < 1 Pixel bertambah 1 pada sumbu x dan bertambah sebesar m pixel pada sumbu y Gradien bernilai m > 1 Pixel bertambah 1 pada sumbu y dan bertambah sebesar 1/m pixel pada sumbu x Gradien bernilai m = 1 Pixel bertambah 1 pada sumbu x dan bertambah sebesar 1 pixel pada sumbu y Here comes your footer  Page 23

24 Algoritma DDA Prinsip algoritma ini adalah mengambil nilai integer terdekat dengan jalur garis  berdasarkan atas sebuah titik yang telah ditentukan sebelumnya(titik awal garis) Algoritma pembentukan garis DDA: Tentukan dua titik yang akan dihubungkan dalam pembentukan garis. Tentukan salah satu titik sebagai awal(x0,y0) dan titik akhir(x1,y1). Hitung dx=x1­x0, dan dy= y1­y0 Tentukan langkah, yaitu dengan cara jarak maksimum jumlah penambahan  nilai x maupun nilai y, dengan cara: Bila nilai absolut dari dx lebih besar dari absolut dy, maka langkah= absolut dari dx. Bila tidak maka langkah= absolutdari dy Hitung penambahan koordinat pixel yaitu x_increment=dx/langkah, dan y_increment=dy/langkah Koordinat selanjutnya (x+x_increment, y+y_increment) Posisi pixel pada layar ditentukan dengan pembulatan nilai koordinat tersebut Ulangi nomor 6 dan 7 untuk menentukan posisi pixel selanjutnya,sampai x=x1  dan y=y1 Here comes your footer  Page 24

25 Kelemahan algoritma DDA :
Hanya dapat digunakan untuk nilai x1 < x2 dan y1 < y2 atau garis yang berada di kuadran I Here comes your footer  Page 25

26 Algoritma garis Bresenham
Grafika Komputer  Page 26

27 Algoritma Garis Bresenham
Dikembangkan oleh Bresenham Berdasarkan selisih antara garis yang diinginkan terhadap setengah ukuran dari pixel yang sedang digunakan Here comes your footer  Page 27

28 Algoritma Bresenham untuk dx > dy
Here comes your footer  Page 28

29 Algoritma Bresenham untuk dx < dy
Here comes your footer  Page 29

30 Gambarkan hasil perhitungannya!
Contoh Hitung lokasi 5 titik pertama yang dilewati oleh garis (10,30) – (256,147) menggunakan algoritma bresenham! Gambarkan hasil perhitungannya! Here comes your footer  Page 30

31 Contoh gunakan algoritma untuk dx > dy Garis (10,30) – (256,147)
dx = (x2 – x1) = (256 – 10) = 246 dy = (y2 – y1) = (147 – 30) = 117 e = 2 * dy – dx = 2 * 117 – 246 = -12 d1 = 2 * dy = 2 * 117 = 234 d2 = 2 * (dy – dx) = 2 * (117 – 246) = -258 x = 10 ; y = 30 e = -12  e < 0 e = e + d1 = = 222 x = x + 1 = 11 ; y = y = 30 e = 222  e >= 0 e = e + d2 = = -36 x = x + 1 = 12; y = y + 1 = 31 Here comes your footer  Page 31

32 Contoh e = -36  e < 0 e = e + d1 = = 198 x = x + 1 = 13; y =y =31 e = 198  e >= 0 e =e + d2 = = -60 x = x + 1 =14; y =y +1 = 32 Here comes your footer  Page 32

33 Algoritma lingkaran Bresenham
Lailatul Husniah, S.ST Algoritma lingkaran Bresenham Grafika Komputer  Page 33

34 Lingkaran Untuk menggambar sebuah lingkaran hanya diperlukan menggambar titik-titik pada oktan pertama saja, sedangkan titik-titik pada kuadran lain dapat diperoleh dengan mencerminkan titik-titik pada oktan pertama. Dari gambar dibawah ini titik pada oktan pertama dapat dicerminkan melalui sumbu Y = X untuk memperoleh titik-titik pada oktan kedua dari kuadran pertama. Titik-titik pada kuadran pertama dicerminkan melalui sumbu X = 0 untuk memperoleh titik-titik pada kuadran kedua. Gambar berikut menunjukkan menggambar lingkaran dengan merefleksikan oktan pertama Grafika Komputer  Page 34

35 Lingkaran Grafika Komputer  Page 35

36 Lingkaran Grafika Komputer  Page 36

37 Algoritma Lingkaran Bresenham
Here comes your footer  Page 37

38 Contoh Jika diketahui R = 5 dan titik terakhir yang dipilih adalah (0,5) hitung koordinat titik berikutnya yang harus dipilih Jawab Here comes your footer  Page 38

39 Latihan Soal Hitung 3 titik pertama yang dilewati garis A dengan koordinat (100,150)-(10,30) menggunakan algoritma garis Bresenham dan gambarkan hasilnya. Jika diketahui R=10 dan titik terakhir yang dipilih adalah (10,20), hitung koordinat titik berikutnya yang harus dipilih. Here comes your footer  Page 39

40 Geometri Lanjut

41 Geometri Lanjut Polygon Algoritma flood fill
Grafika Komputer  Page 41

42 Polygon Here comes your footer  Page 42

43 Polygon Polygon adalah bentuk yang disusun dari serangkaian garis
Titik sudut dari polygon disebut vertex Garis penyusun polygon disebut edge Sebuah polygon selalu mempunyai properti dasar : jumlah vertex koordinat vertex data lokasi tiap vertex Polygon digambar dengan menggambar masing-masing edge dengan setiap edge merupakan pasangan dari vertexi – vertex i+1, kecuali untuk edge terakhir merupakan pasangan dari vertexn – vertex1 . Here comes your footer  Page 43

44 Operasi-operasi pada polygon
Menginisialisasi polygon inisialisasi terhadap polygon perlu dilakukan untuk mengatur agar field vertnum berisi 0. Menyisipkan vertex menyimpan informasi tentang vertex dan menyesuaikan informasi tentang jumlah vertex dengan menambahkan satu ke vertnum. Menggambar polygon mengunjungi vertex satu per satu dan menggambar edge dengan koordinat (vertexi.x, vertexi.y) – (vertex i+1.x – vertex i+1.y) dari vertex nomor satu sampai vertnum – 1. Khusus untuk edge terakhir mempunyai koordinat (vertexvertnum.x , vertexvertnum.y) – (vertex1.x – vertex1.y). Mewarnai polygon Mengisi area yang dibatasi oleh edge polygon dengan warna tertentu. Here comes your footer  Page 44

45 Algoritma menggambar polygon
Here comes your footer  Page 45

46 Algoritma flood fill Here comes your footer  Page 46

47 Algoritma Flood Fill (Seed Fill)
Merupakan algoritma untuk mengisi area di dalam sebuah polygon. Bekerja dengan cara : Pemakai menentukan warna polygon serta lokasi titik yang menjadi titik awal. Kemudian algoritma akan memeriksa titik-titik tetangga. Bila warna titik tetangga tidak sama dengan warna isi polygon maka titik tersebut akan diubah warnanya. Proses tersebut dilanjutkan sampai seluruh titik yang berada di dalam polygon selesai diproses. Penentuan titik tetangga dapat menggunakan metode 4 koneksi atau 8 koneksi seperti berikut : Here comes your footer  Page 47

48 Algoritma Flood Fill (Seed Fill)
Ketepatan algoritma Flood Fill ditentukan oleh titik awal (seed point) dan apakah polygon yang diwarnai merupakan polygon tertutup. Apabila polygon tidak tertutup, meskipun hanya 1 titik yang terbuka maka pengisian akan melebar ke area di luar polygon. Here comes your footer  Page 48

49 Algoritma Flood Fill (Seed Fill)
Here comes your footer  Page 49

50 Geometri Dua Dimensi

51 Geometri Dua Dimensi Transformasi Affine 2D Translasi Skala Rotasi
Transformasi homogeneous Clipping dua dimensi: Ketampakan garis Algoritma Cohen-Sutherland Algoritma Sutherlan-Hodgeman Grafika Komputer  Page 51

52 Transformasi Transformasi merupakan metode untuk mengubah lokasi titik. Bila transformasi dikenakan terhadap sekumpulan titik yang membentuk sebuah benda maka benda tersebut akan mengalami perubahan. Transformasi dasar : translation (translasi) scaling (skala) rotation (putar) Reflection (refleksi) Here comes your footer  Page 52

53 Translasi Translasi adalah transformasi yang menghasilkan lokasi baru dari sebuah objek sejauh jarak pergeseran tr = (trx,try). Untuk menggeser benda sejauh tr maka setiap titik dari objek akan digeser sejauh trx dalam sumbu x dan try dalam sumbu y. Here comes your footer  Page 53

54 Contoh Jika diketahui titik L (1,-1) dan vektor translasi (3,2) maka hitung lokasi titik L yang baru setelah dilakukan translasi. Jawab : Lx = 1 dan Ly = -1 dan trx=3 try=2 maka (Qx,Qy) = (Lx + trx , Ly + try) = (1+3, -1+2) = (4,1) Jadi, lokasi titik L yang baru adalah (4,1). Here comes your footer  Page 54

55 Contoh Here comes your footer  Page 55

56 Skala Berbeda dengan transformasi geser yang tidak mengubah bentuk objek, transformasi skala akan mengubah bentuk objek sebesar skala Sx dan Sy sehingga : Here comes your footer  Page 56

57 Contoh Gambar berikut menunjukkan suatu objek setelah mengalami transformasi skala dengan Sx=2 Sy=2 Here comes your footer  Page 57

58 Rotasi Pemutaran objek dilakukan dengan menggeser semua titik P sejauh sudut q dengan tr = 0 dan titik pusat pemutaran berada di titik (0,0), sehingga : Here comes your footer  Page 58

59 Objek berikut diputar sebesar 60°
Contoh Objek berikut diputar sebesar 60° Dari gambar diperoleh koordinat titik sudut dari objek tersebut adalah P1=(1,1), P2=(3,1), P3=(3,2), P4 = (1,2). Objek diputar 60° dengan titik pusat (0,0) Here comes your footer  Page 59

60 Contoh Dengan cara yang sama diperoleh:
Here comes your footer  Page 60

61 Contoh Here comes your footer  Page 61

62 Contoh Here comes your footer  Page 62

63 Skala Atau Rotasi Menggunakan Sembarang Titik Pusat
Seperti telah dijelaskan sebelumnya, skala dan rotasi menggunakan titik (0,0) sebagai titik pusat transformasi. Agar dapat menggunakan sembarang titik pusat (Xt,Yt) sebagai titik pusat maka transformasi dilakukan dengan urutan : Translasi (-Xt, -Yt) Rotasi atau Skala Translasi (Xt,Yt) Here comes your footer  Page 63

64 Contoh Dengan menggunakan objek persegi panjang sebelumnya, putar objek sebesar 60° dengan titik pusat (3,2) Jawab: Karena objek diputar pada titik pusat (3,2) maka sebelum dilakukan pemutaran objek harus ditranslasikan sebesar (-3,-2), setelah itu objek diputar sebesar 60° dan kemudian hasil pemutaran ditranslasikan sebesar (3,2). Here comes your footer  Page 64

65 Contoh Here comes your footer  Page 65

66 Contoh Here comes your footer  Page 66

67 Transformasi Homogeneous
Transformasi yang sudah dibahas sebelumnya baik di titik pusat (0,0) maupun di sembarang titik merupakan transformasi linear Transformasi juga dapat dilakukan dengan menggunakan matriks transformasi yang menggabungkan transformasi translasi, penskalaan dan rotasi ke dalam satu model matriks atau sering disebut juga sebagai transformasi homogeneous Isi dari matriks transformasi bergantung pada jenis transformasi yang dilakukan Here comes your footer  Page 67

68 Transformasi Homogeneous
Transformasi dilakukan dengan menggunakan rumus: Here comes your footer  Page 68

69 Clipping 2 Dimensi Tidak semua garis harus digambar di area gambar karena garis-garis yang tidak terlihat di area gambar seharusnya tidak perlu digambar. Metode untuk menentukan bagian garis yang perlu digambar atau tidak perlu digambar disebut clipping. Clipping juga dapat diartikan sebagai suatu tindakan untuk memotong suatu objek dengan bentuk tertentu. Here comes your footer  Page 69

70 Ketampakan Garis (Line Visibility)
Posisi ketampakan garis terhadap area gambar (viewport) : Garis yang terlihat seluruhnya (fully visible): garis tidak perlu dipotong Garis yang hanya terlihat sebagian (partially visible): garis yang perlu dipotong Garis yang tidak terlihat sama sekali (fully invisible): garis tidak perlu digambar Here comes your footer  Page 70

71 Algoritma Cohen-sutherland
Merupakan metode untuk menentukan apakah sebuah garis perlu dipotong atau tidak dan menentukan titik potong garis Area gambar didefinisikan sebagai sebuah area segiempat yang dibatasi oleh xmin dan xmax,ymin dan ymax. Here comes your footer  Page 71

72 Algoritma Cohen-sutherland
Setiap ujung garis diberi kode 4 bit dan disebut sebagai region code. Region code ditentukan berdasarkan area dimana ujung garis tersebut berada Susunan region code : Here comes your footer  Page 72

73 Algoritma Cohen-sutherland
Here comes your footer  Page 73

74 Contoh Jika diketahui area gambar ditentukan dengan xmin=1, ymin = 1 dan xmax=4, ymax=5 dan 2 garis : P (–1, –2) – (5,6) Q (–1,5) – (6,7) Maka untuk menentukan region code dari masing-masing garis tersebut adalah : Here comes your footer  Page 74

75 Contoh Karena region code kedua ujung garis tidak 0000 maka garis P kemungkinan bersifat partialy invisible dan perlu dipotong. Here comes your footer  Page 75

76 Contoh Ujung Garis Q (-1,5) Ujung Garis Q (6,7)
Karena region code kedua ujung garis tidak 0000 maka garis Q kemungkinan bersifat partialy invisible dan perlu dipotong Here comes your footer  Page 76

77 Menentukan Titik Potong
Langkah berikutnya menentukan lokasi titik potong antara garis tersebut dengan batas area gambar. Titik potong dihitung berdasarkan bit=1 dari region code dengan menggunakan panduan tabel berikut : dengan xp1,xp2,yp1, dan yp2 dihitung menggunakan persamaan berikut ini : Here comes your footer  Page 77

78 Persamaan Here comes your footer  Page 78

79 Menentukan Titik Potong
Bergantung pada lokasi ujung garis maka akan diperoleh 2,3,atau 4 titik potong seperti gambar berikut: Bila ditemukan titik potong lebih dari 2 pada 1 ujung maka pilih titik potong yang ada di dalam area gambar. Here comes your footer  Page 79

80 Contoh Here comes your footer  Page 80

81 Contoh Here comes your footer  Page 81

82 Contoh Here comes your footer  Page 82

83 Ada 4 titik potong pada garis P yaitu (1, 0. 67), (1. 25,1), (4, 4
Pilih titik potong yang terdapat dalam viewport yaitu (1.25,1) dan (4, 4.7). Here comes your footer  Page 83

84 Latihan Soal Jika diketahui area gambar ditentukan dengan xmin=0, ymin = 0 dan xmax=9, ymax=9 dan 3 garis : A (-2, -1) – (3, 9) B (-1,-3) – (2,8) C(-4, -2) – (1, 5) Tentukan region code dan titik potong dari masing- masing garis. Here comes your footer  Page 84

85 Latihan Soal Jika diketahui area gambar ditentukan dengan xmin=0, ymin = 0 dan xmax=9, ymax=9 dan 3 garis : A (0, -2) – (3, 9) B (-1,-1) – (2,8) C(-2, -1) – (0, 10) Tentukan region code dan titik potong dari masing- masing garis Here comes your footer  Page 85

86 Algoritma Sutherland-Hodgeman (SH)
Digunakan untuk kliping poligon Idenya melakukan pemotongan terhadap batas demi batas window secara terpisah Pemotongan terhadap suatu batas (dan perpanjangan batas itu) menghasilkan suatu poligon lain yang akan dipotongkan terhadap batas selanjutnya (dan perpanjangannya) Here comes your footer  Page 86

87 Contoh Gambar berikut ini dimana suatu poligon dipotong terhadap suatu window berbentuk persegi panjang Pemotongan pertama dilakukan terhadap sisi kiri, kemudian kanan, bawah, dan terakhir atas. Here comes your footer  Page 87

88 Cara pemotongan terhadap suatu garis batas (1)
Algoritma SH memiliki aturan sbb, jika poligon dinyatakan oleh verteks-verteks v1, v2, …..vn : Sisi demi sisi diperiksa terhadap batas window mulai dari sisi v1v2, v2v3,….. vn-1vn dan vnv1, untuk mendapatkan verteks-verteks membentuk poligon baru hasil pemotongan tersebut . Pada tahap inisialisasi poligon hasil berisikan 0 verteks. Bila suatu sisi vivi+1 berpotongan dengan batas window dengan vi berada di luar mengarah dan berada di dalam batas window maka dilakukan komputasi untuk mendapatkan titik perpotongannya yaitu vi’, dan verteks-verteks vi’ dan vi+1 dicatat sebagai verteks berikutnya di poligon hasil pemotongan. Bila suatu sisi vivi+1 berpotongan dengan batas window dengan vi berada di dalam mengarah dan berada di luar batas window maka dilakukan komputasi untuk mendapatkan titik perpotongannya yaitu vi’, dan verteks dicatat sebagai verteks berikutnya di poligon hasil pemotongan Here comes your footer  Page 88

89 Cara pemotongan terhadap suatu garis batas (2)
Bila suatu sisi vivi+1 tidak berpotongan dengan batas window dan berada di sebelah dalam batas window maka verteks vi+1 dicatat sebagai verteks berikutnya di poligon hasil pemotongan. Bila suatu sisi vivi+1 tidak berpotongan dengan batas window dan berada di sebelah luar batas window maka tidak ada yang dicatat. Here comes your footer  Page 89

90 Contoh Beikut ini adalah contoh pemotongan poligon terhadap sisi kiri window persegi empat Poligon yang dihasilkan adalah dengan verteks-verteks v1’v2v3v3’ Pada pemeriksaan v1v2 diperoleh v1’, dan v2 Pada pemeriksaan v2v3 diperoleh v3 Pada pemeriksaan v3v4 diperoleh v3’ Pada pemeriksaan v4v1 tidak ada verteks baru Here comes your footer  Page 90


Download ppt "Dasar teori dan algoritma grafika komputer"

Presentasi serupa


Iklan oleh Google