Apa itu Algoritma Bresenham ?
Algoritma garis Bresenhem adalah algoritma konversi penambahan nilai integer.Langkah-langkah untuk membentuk garis menurut algoritma ini adalah :
1. Tentukan Titik Awal dan Akhir ;
Titik Awal (x1 , y1)
Titik Akhir (x2 , y2)
2. Nilai Pengubahan posisi (P)
P Awal = (2 * Dy) - Dx
a. Kondisi 1 : Jika P< 0, Maka x = x + 1,Y tetap P selanjutnya adalah P = P + (2 * Dy)
b. Kondisi 2 : Jika P> 0 Maka x = x + 1,Y = Y + 1 P selanjutnya adalah P = P + 2* (Dy - Dx)
Contoh Codingan :
Main.java
package dda;
import java.awt.*;
import javax.swing.*;
/**
*
* @author AGUSBUDIM
*/
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 dda");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
garis grs = new garis();
grs.setx1(200);
grs.sety1(250);
grs.setx2(10);
grs.sety2(10);
grs.setBackground(Color.WHITE);
frame.add(grs);
frame.setSize(600,480);
frame.setVisible(true);
}
}
garis.java
package dda;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
/**
*
* @author CHHANNZ
*/
public class garis extends JPanel {
private int x1;
private int y1;
private int x2;
private int y2;
public int getx1() {
return x1;
}
public int getx2() {
return x2;
}
public int gety1() {
return y1;
}
public int gety2() {
return y2;
}
public void setx1(int xa) {
x1 = xa;
}
public void setx2(int xb) {
x2 = xb;
}
public void sety1(int ya) {
y1 = ya;
}
public void sety2(int yb) {
y2 = yb;
}
public void paint(Graphics g) {
int dx = x2-x1;
int dy = y2-y1;
int steps,k;
float x=x1;
float y=y1;
float x_inc,y_inc;
super.paint(g);
this.setBackground(Color.WHITE);
g.setColor(Color.RED);
if(Math.abs(dx)>Math.abs(dy)) steps = Math.abs(dx);
else steps = Math.abs(dy);
x_inc = dx/(float)steps;
y_inc = dy/(float)steps;
g.drawRect(Math.round(x), Math.round(y), 1, 1);
for(k=0;k<steps;k++) {
x+=x_inc;
y+=y_inc;
g.drawRect(Math.round(x), Math.round(y), 1, 1);
}
}
public garis() {
}
}
Hasil Jadi program :
Tidak ada komentar:
Posting Komentar