Minggu, 26 Desember 2010

Sierpinski Triangle Java

Kelas proses :






import java.awt.Graphics;

import java.awt.Point;

import javax.swing.JPanel;


public class Sierpinski extends JPanel {


    private int level;


    @Override

    protected void paintComponent(Graphics t) {

        super.paintComponent(t);

        Point t1 = new Point(getWidth() / 2, 10);

        Point t2 = new Point(10, getHeight() - 10);

        Point t3 = new Point(getWidth() - 10, getHeight() - 10);

        TampilkanSegitiga(t, level, t1, t2, t3);

    }


    private static void TampilkanSegitiga(Graphics t, int level, Point t1, Point t2, Point t3) {

        if (level >= 0) {

            t.drawLine(t1.x, t1.y, t2.x, t2.y);

            t.drawLine(t1.x, t1.y, t3.x, t3.y);

            t.drawLine(t2.x, t2.y, t3.x, t3.y);


            Point t12 = titikTengah(t1, t2);

            Point t23 = titikTengah(t2, t3);

            Point t31 = titikTengah(t1, t3);


            TampilkanSegitiga(t, level - 1, t1, t12, t31);

            TampilkanSegitiga(t, level - 1, t12, t2, t23);

            TampilkanSegitiga(t, level - 1, t31, t23, t3);


        }

    }


    private static Point titikTengah(Point t1, Point t2) {

        return new Point((t1.x + t2.x) / 2, (t1.y + t2.y) /2 );

    }


    Sierpinski(int x) {

        level = x;

    }

}





Kelas Output :




import java.awt.Color;

import java.util.Scanner;

import javax.swing.JFrame;



/**

 *

 * @author iqbal

*/

public class Output {


//    static int TingkatLevel;


    public static void main(String[] args) {


        System.out.println("masukkan level Segitiga Sierpinski");

        Scanner sc = new Scanner(System.in);

        int TingkatLevel;

        TingkatLevel = sc.nextInt();

    Sierpinski F = new Sierpinski(TingkatLevel);

        JFrame kk = new JFrame("Inilah Segitiga Sierpinski,terima kasih");

        kk.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        kk.add(F);

        kk.setVisible(true);

        kk.setSize(340, 340);

    }

}

Sierpinski Triangle Java 2

The Source :





import java.awt.Color;

import java.awt.Graphics;

import java.awt.Point;

import javax.swing.JFrame;

import javax.swing.JPanel;


/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

/**

 *

 * @author FHR93

 */

public class segi3 extends JPanel {


    private int order = 3;


// public void setOrder(int order) {

//        this.order = order;

//        //repaint();

//    }



    @Override

    protected void paintComponent(Graphics g) {

        super.paintComponent(g);

        Point p1 = new Point(getWidth() / 2, 10);

        Point p2 = new Point(10, getHeight() - 10);

        Point p3 = new Point(getWidth() - 10, getHeight() - 10);

        displayTriangles(g, order, p1, p2, p3);

    }


    private static void displayTriangles(Graphics g, int order, Point p1, Point p2, Point p3) {

        if (order >= 0) {

            g.drawLine(p1.x, p1.y, p2.x, p2.y);

            g.drawLine(p1.x, p1.y, p3.x, p3.y);

            g.drawLine(p2.x, p2.y, p3.x, p3.y);


            Point p12 = midpoint(p1, p2);

            Point p23 = midpoint(p2, p3);

            Point p31 = midpoint(p1, p3);


            displayTriangles(g, order - 1, p1, p12, p31);

            displayTriangles(g, order - 1, p12, p2, p23);

            displayTriangles(g, order - 1, p31, p23, p3);


        }

    }


    private static Point midpoint(Point p1, Point p2) {

        return new Point((p1.x + p2.x) / 2, (p1.y + p2.y) / 2);

    }

    public static void main(String[] args){

        JFrame FF = new JFrame("Drawing a recursive triangles");

        FF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        segi3 F = new segi3();

        FF.setBackground(Color.YELLOW);

        FF.add(F);

        FF.pack();

        FF.setVisible(true);

        FF.setSize(500, 500);

    }

}

Sierpinski Triangle Java 2 OOP

The Source :





import java.awt.Color;

import java.awt.Graphics;

import java.awt.Point;

import javax.swing.JFrame;

import javax.swing.JPanel;


/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

/**

 *

 * @author FHR93

 */

public class segi3 extends JPanel {


    private int order = 3;


// public void setOrder(int order) {

//        this.order = order;

//        //repaint();

//    }



    @Override

    protected void paintComponent(Graphics g) {

        super.paintComponent(g);

        Point p1 = new Point(getWidth() / 2, 10);

        Point p2 = new Point(10, getHeight() - 10);

        Point p3 = new Point(getWidth() - 10, getHeight() - 10);

        displayTriangles(g, order, p1, p2, p3);

    }


    private static void displayTriangles(Graphics g, int order, Point p1, Point p2, Point p3) {

        if (order >= 0) {

            g.drawLine(p1.x, p1.y, p2.x, p2.y);

            g.drawLine(p1.x, p1.y, p3.x, p3.y);

            g.drawLine(p2.x, p2.y, p3.x, p3.y);


            Point p12 = midpoint(p1, p2);

            Point p23 = midpoint(p2, p3);

            Point p31 = midpoint(p1, p3);


            displayTriangles(g, order - 1, p1, p12, p31);

            displayTriangles(g, order - 1, p12, p2, p23);

            displayTriangles(g, order - 1, p31, p23, p3);


        }

    }


    private static Point midpoint(Point p1, Point p2) {

        return new Point((p1.x + p2.x) / 2, (p1.y + p2.y) / 2);

    }

    public static void main(String[] args){

        JFrame FF = new JFrame("Drawing a recursive triangles");

        FF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        segi3 F = new segi3();

        FF.setBackground(Color.YELLOW);

        FF.add(F);

        FF.pack();

        FF.setVisible(true);

        FF.setSize(500, 500);

    }

}