Apa itu Algoritma DDA ?
Algoritma DDA (Digital Differential Analyzer) adalah algoritma pembentukan garis berdasarkan perhitungan Dx dan Dy,yaitu pembuatan garis dengan langkah umum sebagai berikut ;
1. Tentukan Titik Awal dan Akhir
Titik Awal (x1,y1)
Titik Akhir (x2,y2)
2. Pengubahan Posisi (steps)
Jika Dx > DY maka steps = DX
Jika tidak maka steps = DY
Dx = X2 - X1
Dy = Y2 - Y1
Perubahan nilai X (X_inc) = Dx/steps =
Perubahan nilai Y (Y_inc) = Dy/steps =
3. Perulangan (ubah posisi dan gambar)
X = X + X_inc =
Y = Y + Y_inc =
Contoh Codingan Sebagai Berikut :
Main.java
package bresenham;
import java.awt.*;
import javax.swing.*;
/**
*
* @author ardianagus
*/
public class Main {
/**
* @param args the command line arguments
*/
public Main() {
}
public static void main(String[] args) {
// TODO code application logic here
JFrame frame = new JFrame("algoritma garis bresenham");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
garis grs = new garis();
grs.setx1(270);
grs.sety1(260);
grs.setx0(10);
grs.sety0(10);
frame.add(grs);
frame.setSize(720,480);
frame.setVisible(true);
}
}
garis.java
package bresenham;
import java.awt.*;
import javax.swing.*;
/**
*
* @author CHHANNZ
*/
public class garis extends JPanel{
private int x0,y0,x1,y1;
public int getx0() {
return x0;
}
public int getx1() {
return x1;
}
public int gety0() {
return y0;
}
public int gety1() {
return y1;
}
public void setx0(int xa) {
x0 = xa;
}
public void sety0(int ya) {
y0 = ya;
}
public void setx1(int xb) {
x1 = xb;
}
public void sety1(int yb) {
y1 = yb;
}
public void paint(Graphics g) {
int x,y,xend;
int dx = Math.abs(x1-x0);
int dy = Math.abs(y1-y0);
super.paint(g);
this.setBackground(Color.WHITE);
g.setColor(Color.RED);
int p = 2*dy-dx;
int duady = 2*dy;
int duadydx = 2*(dy-dx);
if (x0>x1) {
x = x1;
y = y1;
xend = x0;
} else {
x = x0;
y = y0;
xend = x1;
}
g.drawRect(x, y, 1, 1);
while(x<xend) {
x++;
if(p<0) {
p+=duady;
} else {
if (y0>y1) {
y--; } else y++;
p+=duadydx;
}
g.drawRect(x, y, 1, 1);
}
}
public garis() {
}
}
Hasil Jadi Program
Tidak ada komentar:
Posting Komentar