Cute Bananas

Jumat, 16 November 2018

PERTEMUAN 6 - ALGORITMA GARIS


ALGORITMA GARIS


            Algoritma merupakan langkah - langkah (prosedur) yang harus dilakukan untuk menyelesaikan sebuah masalah. Garis merupakan sederetan pixel yang membentuk satu kesatuan.  Sumbu-sumbu koordinat memisahkan bidang ke dalam empat daerah, yang disebut kuadran. Biasanya kuadran diidentifikasi dengan angka romawi. Titik-titik pada sumbu-sumbu koordinat tidak masuk pada sembarang kuadran. Urutan tanda dari absis dan ordinat ( x,y).
            Dalam sistem koordinat tegak lurus setiap pasangan berurutan dari bilangan real dinyatakan dengan satu dan hanya satu titik pada bidang koordinat, dan setiap titik pada bidang koordinat berkorespondensi satu dan hanya satu pasangan berurutan dari bilangan real.
            Koordinat titik-titik yang ditentukan dengan cara ini, seringkali dikenal sebagai koordinat Cartesius, sebagai penghormatan terhadap matematikawan dan filosof asal Perancis yang bernama René Descartes  yang hidup dari 1596 sampai1650. Satu hal yang perlu dicatat adalah dua garis sumbu koordinat tidak perlu harus berpotongan secara tegak lurus. Namun demikian jika kedua sumbu berpotongan miring, hasil-hasil secara aljabar menjadi lebih rumit.

1.    Garis (Line)
Persamaan garis :
q  y = m.x + c
dimana :        
         m = (y2-y1)/(x2-x1) = Dy/Dx
         c = y1 – m.x1 atau c = y2 – m.x2

2.    Algoritma Pembuatan Garis
            Algoritma pembuatan garis lurus vertikal dan horisontal relatif mudah, tetapi bila garis tersebut miring, maka algoritma menjadi sulit.

3.    Algoritma Garis 
            Algorithma garis adalah algorithma untuk menentukan lokasi pixel yang paling dekat dengan garis sebenarnya (actual line). Ada tiga algorithma untuk menggambar garis :

A.  Line Equation (Persamaan Garis Lurus)
            Persamaan garis lurus merupakan persamaan linier yang mengandung satu atau dua variabel. Sebuah garis lurus dapat diperoleh dengan menggunakan rumus :
y = mx + b
dimana :
m = gradient
b  = perpotongan garis dengan sumbu y

            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 :




B.  DDA (Digital Difference Analyser)
            Digital differential analyzer (DDA) merupakan algoritma untuk menghitung posisi pixel di sepanjang garis dengan menggunakan posisi pixel sebelumnya. Algoritma ini menggunakan asumsi bahwa garis berada di kuadran I atau II serta tipe garis cenderung tegak atau cenderung mendatar dan mengatur titik-titik koordinat pada masing-masing sumbu.
·      Untuk garis dengan 0< m ≤1 (cenderung mendatar di Kuadran I), maka :
Ø  yk+1=yk + m
Ø  xk+1 = xk + 1
·      Untuk garis dengan m > 1 (cenderung tegak di Kuadran I), maka :
Ø  xk+1=xk + 1/m
Ø  yk+1 = yk + 1
·      Untuk garis dengan 0 > m > -1 (cenderung mendatar di Kuadran II), maka:
Ø  yk+1=yk - m
Ø  xk+1 = xk - 1
·      Bila m < -1 (cenderung tegak di Kuadran II), maka :
Ø  xk+1=xk - 1/m
Ø  yk+1 = yk + 1

            Digital Diferensial Analyser (DDA) adalah algoritma pembentukan garis berdasarkan perhitungan dx maupun dy, menggunakan rumus dy = m . dx. Garis dibuat menggunakan dua endpoint, yaitu titik awal dan titik akhir. Setiap koordinat titik yang membentuk garis diperoleh dari perhitungan, kemudian dikonversikan menjadi nilai integer.
            Langkah-langkah membentuk garis menurut algoritma DDA adalah :

1.    Tentukan 2 buah titik
2.    Tentukan yang menjadi titik awal (X0, Y0) dan titik akhir (X1, Y1)
3.    Hitung Dx dan Dy

            Dx = X1 – X0 dan Dy =  Y1 – Y0

4.    Bandingkan absolut (Dx) dan absolut (Dy)
Jika absolute (Dx) > absolut (Dy), maka
Steps = absolute (Dx) bila tidak, steps = absolut (Dy)
5.    Hitung penambahan koordinat pixel, yaitu:

6.    Koordinat selanjutnya yaitu:
X + X_increment
Y + Y_increment
7.    Posisi pixel ditentukan dengan pembulatan nilai koordinat tersebut.
8.    Ulangi langkah 6 dan 7 untuk posisi selanjutnya sampai X = X1, Y= Y1

C.  Algoritma Bresenham
·      Garis Lurus
Garis lurus dinyatakan dinyatakan dalam persamaan :
y = mx + c   è Persamaan (1)
dimana :
m : gradient
c : konstanta

            Untuk menggambarkan pixel-pixel dalam garis lurus, parameter yang digunakan tergantung dari gradient, jika besarnya gradien diantara 0 dan 1, maka digunakan sumbu x sebagai parameter dan sumbu y sebagai hasil dari fungsi, sebaliknya, bila gradien melebihi 1, maka sumbu y digunakan sebagai parameter dan sumbu x sebagai hasil dari fungsi, hal ini bertujuan untuk menghindari terjadinya gaps karena adanya pixel yang terlewatkan. Hasil dari fungsi biasanya merupakan bilangan real, sedangkan koordinat pixel dinyatakan dalam bilangan integer (x,y), maka diperlukan operasi pembulatan kedalam bentuk integer terdekat. Penggambaran garis lurus dengan metode diatas dimulai dengan operasi bilangan real untuk menghitung gradient m dan konstanta c.
m = (y2 – y1 ) / (x2-x1)          (2)
c = y1 / m* x1*                       (3)
            Operasi bilangan real berikutnya adalah menghitung nilai y dengan persamaan (1) Untuk mendapatkan koordinat piksel (x,y), untuk setiap nilai x, dari =x1 sampai x=x2, operasi inilah yang perlu dihindari,karena operasi ini memerlukan waktu operasi yang besar.

·      Algoritma Bresenham untuk Penggambaran Garis
            Bresenham pada tahun 1965, melakukan perbaikan dari algoritma perhitungan koordinat piksel yang menggunakan persamaan (1), dengan cara menggantikan operasi bilangan real perkalian dengan operasi penjumlahan, yang kemudian dikenal dengan Algoritma Bresenham. Pada algoritma bresenham, nilai y kedua dan seterusnya, dihitung dari nilai y sebelumnya, sehingga hanya titik y pertama yang perlu dilakukan operasi secara lengkap. Perbaikan algoritma ini ternyata tidak menghasilkan perbaikan yang cukup siginifikan. Perbaikan berikutnya dilakukan dengan cara menghilangkan operasi bilangan real dengan operasi bilangan integer. Operasi bilangan integer jauh lebih cepat dibandingkan dengan operasi bilangan real, terutama pada penambahan dan pengurangan.

·      Algoritma Garis Bresenham
            Prosedur untuk menggambar kembali garis dengan membulatkan nilai x atau y ke bilangan integer memerlukan waktu. serta variabel x,y maupun m memerlukan bilangan real karena kemiringan merupakan nilai pecahan.Bressenham mengembangkan algoritma klasik yang lebih menarik, karena hanya menggunakan perhitungan matematik dengan bantuan bilangan integer. Dengan demikian tidak perlu membulatkan nilai posisi pixel setiap waktu. Langkah-langkahnya adalah sebagai berikut:
1.    Tentukan 2 titik yang akan dihubungkan dalam pembentuk garis
2.    Tentukan salah satu titik disebelah kiri sebagai titik awal, yaitu (X0, Y0) dan titik lainnya sebagai titik akhir (X1, Y1)
3.    Hitung Dx, Dy, 2DX dan 2Dy-2Dy
4.    Hitung parameter P0= 2Dy – 2Dx
5.    Untuk setiap X1 sepanjang jalur garis, dimulai dengan k=0,
·      bila pk<0, maka titik selanjutnya adalah (Xk + 1, Yk) dan Pk+1 = Pk +2Dy
·      bila tidak, maka titik selanjutnya adalah (Xk + 1, Yk +1) dan Pk+1 = Pk+2Dy – 2Dx
6.    Ulangi langkah no. 5 untuk menentukan posisi selanjutnya, sampai X=X1 dan Y=Y1.

Atribut Tipe Garis

            Atribut tipe atau style pada garis dibagi menjadi 3 (tiga) yaitu :

1.    Solid line
Algoritma pembentukan garis dilengkapi dengan pengaturan panjang dan jarak yang menampilkan bagian solid sepanjang garis.
2.    Dashed line (garis putus)
Garis putus dibuat dengan memberikan jarak dengan bagian solid yang sama.
3.    Dotted line (garis titik-titik)
Garis titik-titik dapat ditampilkan dengan memberikan jarak yang lebih besar dari bagian.

Atribut Tebal Garis

·      Implementasi dari tebal garis tergantung dari kemampuan alat output yang digunakan. Garis tebal pada video monitor dapat ditampilkan sebagai garis adjacent parallel (kumpulan garis sejajar yang berdekatan), sedangkan pada plotter mungkin menggunakan ukuran pen yang berbeda.
·      Pada implementasi raster, tebal garis standar diperoleh dengan menempatkan satu pixel pada tiap posisi, seperti algoritma Bressenham. Garis dengan ketebalan didapatkan dengan perkalian integer positif dari garis standar, dan menempatkan tambahan pixel pada posisi sejajar. Untuk garis dengan slope kurang dari 1, routine pembentukan garis dapat dimodifikasi untuk menampilkan ketebalan garis dengan menempatkan pada posisi vertical setiap posisi x sepanjang garis. Untuk garis dengan slope lebih besar dari 1, ketebalan garis dapat dibuat dengan horizontal span.

Atribut Warna Garis

Bila suatu sistem dilengkapi dengan pilihan warna (atau intensitas), parameter yang akan diberikan pada indeks warna termasuk dalam daftar nilai atribut dari sistem. Routine polyline membuat garis pada warna tertentu dengan mengatur nilai warna pada frame buffer untuk setiap posisi pixel, menggunakan prosedur set pixel. Jumlah warna tergantung pada jumlah bit yang akan digunakan untuk menyimpan informasi warna.



Sumber :




Rabu, 14 November 2018

PERTEMUAN 5 - SISTEM KOORDINAT


SISTEM KOORDINAT


            Geometri termasuk matematika yang meliputi bentuk, ukuran, posisi relatif dan sifat ruang. Objek dalam geometri yang memiliki besaran dan arah disebut dengan vektor. Vektor dalam aplikasi selalu menempati ruang. Fenomena vektor di dalam ruang dapat menggunakan bantuan sistem koordinat untuk menjelaskan besar dan arah vektor.
            Sistem koordinat adalah suatu sistem yang menggunakan satu atau lebih bilangan untuk menjelaskan posisi suatu obyek, misalnya titik. Terdapat dua sistem koordinat yaitu sistem koordinat polar dan sistem koordinat kartesius.
1. Sistem koordinat polar adalah sistem yang menjelaskan keberadaan objek dengan jarak dari suatu titik yang telah ditetapkan dan suatu sudut dari suatu arah yang telah ditetapkan.
2. Sistem koordinat kartesius adalah sistem yang menjelaskan koordinat dengan bidang yang merupakan dimensi objek. Misalnya bidang yang memiliki dua dimensi terdiri sumbu x dan y.
            Koordinat kartesius dituliskan sebagai (x,y), x disebut absis, yaitu posisi titik relatif terhadap sumbu X, sedangkan y disebut ordinat, yaitu posisi titik relatif terhadap sumbu Y. Sistem koordinat kartesius ini mulai diperkenalkan pada pelajaran matematika sejak SD. Selanjutnya digunakan dalam penyelesaian berbagai masalah aljabar serta geometri pada pembelajaran matematika selanjutnya.
            Selain koordinat kartesius, terdapat pula jenis koordinat lain, salah satu contohnya adalah koordinat polar atau disebut juga koordinaat kutub. Koordinat polar menunjukkan letak suatu titik berdasarkan sudut terhadap sumbu X positif dan jarak dari titik pusat. Koordinat polar berhubungan juga dengan koordinat kartesius. Oleh karena itu, jika diketahui sebuah koordinat kartesius, kita bisa mengkonversinya ke koordinat polar, begitu juga sebaliknya.
            Perhatikan gambar di bawah ini. 




            Pada gambar tersebut posisi titik P dituliskan dalam dua koordinat, yaitu koordinat kartesius (x,y) dan koordinat polar (r,α). Koordinat kartesius (x,y) menunjukkan posisi titik tersebut relatif terhadap sumbu X dan sumbu Y, sedangkan koordinat polar terdiri atas r yang menunjukkan jarak titik tersebut terhadap titik pusat O dan sudut α menunjukkan sudut yang dibentuk oleh ruas garis OP terhadap sumbu X positif.
            Sistem koordinat menurut situasi dibagi menjadi dua, yaitu :
1.    World Coordinate System

            Bentuk bentuk obyek tiga dimensi (3D) diperhitungkan  terhadap kordinat di sumbu X,Y, dan Z di ruang, yaitu yang disebut sebagai World Coordinate System atau WCS, dimana sumbu-sumbu X,Y dan Z saling bertemu di satu titik yang disebut titik origin yaitu di kordinat (0, 0, 0). Sumbu-  sumbu itu bertemu saling tegak lurus. Titik origin itu sebagai titik awal perhitungan kordinat sehingga  tiap obyek mempunyai jarak tertentu terhadap titik origin sebagai titik absolut.
            World Coordinate System (WCS) merupakan salah satu pedoman sistem kordinat bagi obyek-obyek (3) tiga  dimensi yang  bersifat  sederhana dalam menggambar obyek-obyek (3) tiga  dimensi yang rumit.

2.    Screen Coordinate System

            Screen coordinate atau koordinat layar adalah koordinat yang dipakai untuk mengatur penampilan suatu objek pada layar, baik itu layar komputer maupun layar lainnya. Umumnya layar 2 dimensi mempunyai 2 sumbu koordinat, yaitu sumbu x dan y. Namun demikian ada yang berusaha untuk membuat layar 3 dimensi, walau kini masih dalam tahap penelitian dan belum ditemukan dipasaran bebas (Ingat istilah Hologram).
            Perbedaan koordinat layar dengan sistem koordinat yang lain adalah posisi nilai 0 untuk sumbu x dan Y. Ada yang menempatkan sumbu (0,0) pada kiri atas dan ada juga yang
meletakkan pada kiri bawah.

Transformasi World Coodinate ke Screen Coordinate


            Gambar diatas menunjukan  perbedaan orientasi yang menyebabkan gambar di World tampak terbalik di Screen. Agar gambar di screen tampak sama dengan di world maka perlu dilakukan transformasi koordinat. Dengan demikian setiap titik di wc dapat diketahui lokasinya di sc sebagai :
xsc = xwc
ysc = ymax – ywc
            Rumus tersebut tidak dapat mengatasi persoalan :
1.    Pemakaian window dan viewport
2.    Nilai negatif dari koordinat wc

Window merupakan sebagian area di World
Viewport merupakan sebagian area layar yang digunakan untuk menampilkan window. Isi window yang ditampilkan di viewport harus tetap proporsional.



      Transformasi WC ke SC

      




Sumber

https://ryancom.files.wordpress.com/2017/10/komputer-grafik-01.pptx

PERTEMUAN 6 - ALGORITMA GARIS

ALGORITMA GARIS             Algoritma merupakan langkah - langkah (prosedur) yang harus dilakukan untuk menyelesaikan sebuah masalah...