Minggu, 30 Oktober 2016

CODING LINGKARAN

LANGKAH - LANGKAH MENGHITUNG ALGORITMA LINGKARAN

1.Tentukan titik tengah dan jari-jari
   xc , yc , R

2. Tentukan nilai pengubahan posisi
    P = I - R;
    x = 0;
    y = R = 4

3. Perulangan
    xc = y
    P Selanjutnya = P + (2 * x) + 1 jika P < 0
    P Selanjutnya = P + (2 * (x - y)) + 1

4. Translasi dan Pencerminan
    (xc + x ,yc + y )
    (xc - x ,yc + y )
    (xc + x ,yc - y )
    (xc - x ,yc - y )
    (xc + y ,yc + x )
    (xc - y ,yc + x )
    (xc + y ,yc - x )
    (xc - y ,yc - x )


CONTOH CODING LINGKARAN:

MAIN.JAVA

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package lingkaran;

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

/**
 *
 * @author DRIANTAMA
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        JFrame frame = new JFrame("algoritma pembuat lingkaran");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(720,480);
        frame.setVisible(true);

        gambar gbr = new gambar();
        gbr.setxc(350);
        gbr.setyc(200);
        gbr.setr(150);
        frame.add(gbr);
    }

}


GARIS.JAVA

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package lingkaran;

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;

/**
 *
 * @author YOPPY
 */
public class gambar extends JPanel {
    private int xc,yc,r;

    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.RED);
        
        g.setColor(Color.cyan);

        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);
        }
        
    }
}



Tidak ada komentar:

Posting Komentar