Senin, 09 Juli 2012

Program Java Bikin Garis_Bresenham


import java.awt.*;
import javax.swing.*;

public class Garis_Bresenham extends JPanel{
    int x0,y0,x1,y1;
   
    public void garismu(int x0, int y0, int x1, int y1,Graphics g) {
       
        int x,y,xend;
        this.x0=x0;
        this.y0=y0;
        this.x1=x1;
        this.y1=y1;
       
        int dx = Math.abs(x1-x0);
        int dy = Math.abs(y1-y0);
        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);
           
    try{
    Thread.sleep(2);  
    }catch (InterruptedException ie){
    System.out.println(ie.getMessage());
    }
        }
    }

    public void paint(Graphics g){
    garismu(1,1,700,700,g );
    }
  
    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_Bresenham grs = new Garis_Bresenham ();
        grs.setBackground(Color.WHITE);
        frame.add(grs);
        frame.setSize(800,600);
        frame.setVisible(true);
       
    }
}

Tidak ada komentar:

Posting Komentar