Artikel kali ini kita akan mencoba mengimplementasikan algoritma DDA dalam mata kuliah grafika komputer menjadi suatu program c++. Tanpa berlama-lama kita langsung masuk ke pembahasannya.
Yang pertama yang kita buat adalah mempersiapkan setiap langkah-langkah kunci, dengan tujuan memudahkan pada saat pengkodean.
Kunjungi Juga : ocumps.tech
Dimana langkah-langkah pembentukan garis berdasarkan algoritma DDA sebagai berikut :
1. Tentukan 2 titik yang akan dihubungkan dalam pembentukan garis
2. Tentukan salah satunya sebagai titik awal (x1, y1), dan yang lain sebagai titik akhir (x2, y2)
3. Hitung : dx = (x2-x1) dan dy = (y2-y1)
4. Tentukan step dengan ketentuan berikut :
– bila |dx| > |dy| maka step = |dx|
– bila tidak maka step = |dy|
5. Hitung penambahan koordinat pixel dengan persamaan : x_inc = dx/step dan y_inc = dy/step
6. Koordinat selanjutnya : x = x + x_inc dan y = y + y_inc
7. Lakukan pembulatan u = round(x), v = round(y), kemudian plot pixel (u, v) pada layar
8. Ulangi point 6 dan 7 untuk menentukan posisi pixel berikutnya sampai (x = x2) dan (y = y2)
Baca Juga : Grafika Komputer : Implementasi Clipping Polygon
Maka kode yang dihasilkan akan seperti ini :
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
int main(){
//inisialisasi dan deklarasi variabel
int x1, y1, x2, y2, step;
float x, y, dx, dy, x_inc, y_inc;
//menentukan titik awal dan akhir
cout << “Masukan nilai x awal (x1) :”; cin >> x1;
cout << “Masukan nilai y awal (y1) :”; cin >> y1;
cout << “Masukan nilai x akhir (x2) :”; cin >> x2;
cout << “Masukan nilai y akhir (y2) :”; cin >> y2;
//proses hitung dx dan dy
dx = x2 – x1;
dy = y2 – y1;
//perkondisian penentuan step
if (dx > dy){
step = dx;
}else{
step = dy;
}
//deklarasi variabel penampung x dan y sementara
float u[step+1], v[step+1];
//proses hitung x_inc dan y_inc
x_inc = dx/step;
y_inc = dy/step;
//loop penentuan titik-titik
for(int i=0; i<=step; i++){
if(i == 0){
x = x1;
y = y1;
u[i] = x;
v[i] = y;
}else{
x = x + x_inc;
y = y + y_inc;
u[i] = round(x);
v[i] = round(y);
}
}
//tulis data ke file format dat
ofstream file_out;
file_out.open(“dataset.dat”);
// perkondisian file bisa dibuka atau tidak
if(!file_out){
cout << “File error tidak bisa dibuka, Program dihentikan paksa”;
exit(-1);
}else{
file_out <<“# X Y\n”;
for(int i=0; i <= step; i++){
file_out <<” “<< u[i] << ” ” << v[i] <<“\n”;
}
}
// tutup data file
file_out.close();
cout << “Dataset siap, Plot menggunakan gnuplot. Enter untuk keluar!” << endl;
return 0;
}
Selanjutnya setelah dirunning akan menghasilkan seperti berikut
Tampilan running program untuk memasukan x1,y1, x2 dan y2
setelah selesai menentukan titik awal dan akhir maka dihasilkan file dengan nama dataset.dat
Tampilan isi file dataset.dat
setelah dataset disiapkan, kita tinggal memplotnya. Dalam hal ini saya menggunakan gnuplot. untuk cara instalasi akan ditulis dilain artikel, tapi berikut documentasi dari website resminya gnuplot.info
Selanjutnya untuk cara plotnya kita masuk ke cmd lalu :
-arahkan ke directory tempat dataset.dat tersimpan
-jalankan perintah “gnuplot”
dalam uji coba ini karena nilai x terendah 2 dan tertinggi 8, dan nilai y terendah 1 dan tertinggi 5 , sehingga set range dengan berikut
-jalankan “set xrange [0:8]”
-jalankan “set yrange [0:5]”
nilai tersebut bisa disesuaikan dengan nilai tertinggi dan terendah x dan y yang anda hasilkan. Yang terakhir jalankan
-jalankan ‘plot “dataset.dat”
sehingga output yang dihasilkan sebagai berikut, Tampilan dataplot
Sekian artikel singkat kali ini, Semoga bermanfaat, menambah wawasan dan membantu teman-teman ketika ingin mencoba algoritma DDA. Terima kasih telah berkunjung.
Baca Juga : Cara Instalasi Laravel Dengan Mudah – Laravel Tutorial