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

    }

}

Tidak ada komentar:

Posting Komentar