Sabtu, 20 Desember 2014

Komputer Grafis - Teknik Penggambaran Garis

Teknik Penggambaran Garis

Garis terbentuk dari minimal 2 buah titik/vertex
Garis dapat disebut juga dengan vektor


Vektor memiliki satuan nilai dan arah (terhadap sumbu x/y/z)
Sebuah objek 2D maupun 3D terbentuk dari sekumpulan vertex yang dihubungkan (garis) dan dibentuk.

Perhitungan Jarak antar Titik

Mengukur jarak garis P1 ke P2 (vektor a)?

Pergerakan vektor = a
a = P2 – P1 = (x2, y2, z2) – (x1, y1, z1)
Jarak vektor = ||a||
Berdasarkan rumus Euclidian :
||a|| = √(x2 − x1)2 + (y2 − y1)2 + (z2 − z1)2
Normalisasi vektor :
a = a/||a||

Algoritma DDA (Digital Differential Analyzer)

Prinsip algoritma ini adalah mengambil nilai integer terdekat dengan jalur garis berdasarkan atas sebuah titik yang telah ditentukan sebelumnya (titik awal garis).
Algoritmanya yakni :
1.Tentukan dua titik yang akan dihubungkan dalam pembentukan garis
2.Tentukan salah satu titik sebagai titk awal (x0, y0) dan titik akhir (x1, y1)
3. Hitung Dx = x1 – x0 dan Dy = y1 – y0
4. Tentukan langkah, yaitu dengan cara jarak maksimum jumlah penambahan nilai x maupun nilai y, dengan cara :
 - Jika nilai absolut Dx lebih besar dari absolut Dy, maka Step = absolut dari Dx
 - Jika tidak, maka Step  = absolut Dy
5. Hitung penambahan koordinat pixel yaitu x_plus = Dx/Step, dan y_plus = Dy/Step
6. Koordinat selanjutnya ; (x + x_plus, y + y_plus)
7. Posisi pixel pada layar ditentukan dengan pembulatan nilai koordinat tersebut.
8. Ulangi langkah (6) dan (7) untuk menentukan posisi pixel selanjutnya sampai x = x1 dan y = y1.

Algoritma Bressenham

Berbeda dengan Algoritma DDA, Algoritma Bressenham tidak membulatkan nilai posisi pixel setiap waktu. Algoritma Bressenham hanya menggunakan penambahan nilai integer yang juga dapat diadaptasi untuk menggambar lingkaran.
Algoritmanya sebagai berikut :
1.Tentukan dua titik yang akan dihubungkan
2.Tentukan salah satu titik di sebelah kiri sebagai titik awal yaitu (x0, y0) dan titik lainnya sebagai titik akhir (x1, y1)
3.Hitung Dx, Dy, 2Dx, dan 2Dy – 2Dx
4. Hitung parameter awal : P0 = 2Dy - Dx
5. Jalankan perhitungan, dimulai dengan 
k = 0, cek :
Jika Pk <= 0, maka :
Pk+1 = Pk + 2Dy, 
dan titik (Xk + 1, Yk)
Jika Pk > 0, maka :
Pk+1 = Pk + 2Dy – 2Dx 
dan titik (xk + 1, Yk + 1)
 6. Ulangi langkah (5) untuk menentukan posisi pixel selanjutnya sampai x = x1 dan y = y1.


Tidak ada komentar:

Posting Komentar