Entri Populer

Minggu, 05 November 2017

Menggambar Lingkaran Dengan Algoritma Bresenham

Menggambar Lingkaran Algoritma Bresenham Dengan Bahasa JAVA

Berikut ini adalah sourcodenya :

JFrame frame = new JFrame("algoritma pembuat lingkaran");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300,300);
        frame.setVisible(true);

        gambar gbr = new gambar();
        gbr.setxc(200);
        gbr.setyc(200);
        gbr.setr(100);
        frame.add(gbr);


    public int getxc() {
        return xc;
    }

    public int getyc() {
        return yc;
    }

    public int getr() {
        return r;
    }

    public void setxc(int xa) {
        xc = xa;
    }

    public void setyc(int ya) {
        yc = ya;
    }

   
    public void setr(int jari2) {
        r = jari2;
    }

    public void paint(Graphics g) {   
        int p =  1-r;
        int x = 0;
        int y = r;

        super.paint(g);
        this.setBackground(Color.WHITE);
       
        g.setColor(Color.red);

        while(x<=y) {
            x++;
            if (p<0) {
               p+=2*x+1;
            } else {
                y--;
                p+=2*(x-y)+1;
            }
           
            g.drawRect(xc+x, yc+y, 1, 1);
            g.drawRect(xc-x, yc+y, 1, 1);
            g.drawRect(xc+x, yc-y, 1, 1);
            g.drawRect(xc-x, yc-y, 1, 1);
            g.drawRect(xc+y, yc+x, 1, 1);
            g.drawRect(xc-y, yc+x, 1, 1);
            g.drawRect(xc+y, yc-x, 1, 1);
            g.drawRect(xc-y, yc-x, 1, 1);
        }

Ini hasil ketika program di jalankan



Menggambar Garis Dengan Algoritma Bresenham

Menggambar Garis Algoritma Bresenham Dengan Bahasa Java

Berikut ini adalah sourcecode algoritma bresenham:

JFrame frame = new JFrame("algoritma garis bresenham");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        garis grs = new garis();
       
        grs.setx0(10);
        grs.sety0(10);
        grs.setx1(270);
        grs.sety1(260);
        grs.setBackground(Color.WHITE);
       
        frame.add(grs);
        frame.setSize(600,400);
        frame.setVisible(true);


    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);
        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() {
       
    }
Ini adalah hasil ketika program dijalankan





Implementasi Algoritma Garis DDA Dengan Bahasa Pemrograman JAVA

Algoritma DDA (Digital Differential Analyzer)

Algoritma DDA adalah salah satu algoritma sederhana untuk menggambar garis, garis dikelompokkan menjadi 3 bentuk : mendatar, cenderung tegak dan miring 45 derajat.

berukut ini adalah sourcode algoritma DDA dengan bahasa Java :

JFrame frame = new JFrame("algoritma garis dda");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        garis grs = new garis();
        grs.setx1(10);
        grs.sety1(20);
        grs.setx2(300);
        grs.sety2(350);
        grs.setBackground(Color.WHITE);
        frame.add(grs);
        frame.setSize(600,480);
        frame.setVisible(true);

 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() {
   
    }

Ini adalah hasil ketika program dijalankan