Sabtu, 26 November 2011

Source Coding Sierpinski

     Sierpinski adalah materi praktikum 6, disini kita disuruh untuk membuat semacam tumpukan bentung yang semakin lama semakin banyak. Sulit memang kalau kita ingin membuatnya tapi tak mengerti codinganya. Untuk itu, saya sekedar ingin berbagi dengan teman-teman semua. Semoga apa yang saya berikan ini bisa bermanfaat dan praktikum 6 kalian semua bisa berhasil dengan sukses dan lancar.  Bagi teman-teman yang mau praktikum jangan panik dan takut, karena semua coding yang kalian perlukan ada di bawah ini.


Untuk Kelas Sierpinski

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

package praktikum6;
import java.awt.*;
import javax.swing.*;
/**
 *
 * @author umum
 */
public class Sierpinski extends JPanel {
public static final int WINDOWSIZE = 512;
static Polygon [] polyList;
static int count = 0;

  public static void gambarSegitiga(int splits, int ax, int ay, int bx, int by, int cx, int cy){
       int [] C1 = {ax,ay};
       int [] C2 = {bx,by};
       int [] C3 = {cx,cy};
       if (splits == 1) {
           int [] ps = {ax,bx,cx};
           int [] qs = {ay,by,cy};
           Polygon p = new Polygon (ps,qs,ps.length);
           polyList[count] = p;
           count++;
      } else {
           int [] C4 = getMidpoint(ax, ay, bx, by);
           int [] C5 = getMidpoint (bx, by, cx, cy);
           int [] C6 = getMidpoint (ax, ay, cx, cy);

           gambarSegitiga(splits - 1, C1[0],C1[1],C4[0],C4[1],C6[0],C6[1]);
           gambarSegitiga(splits - 1, C4[0],C4[1],C2[0],C2[1],C5[0],C5[1]);
           gambarSegitiga(splits - 1, C6[0],C6[1],C5[0],C5[1],C3[0],C3[1]);
       }
    }
public static int [] getMidpoint(int ax, int ay, int bx, int by){
    int [] mid = new int [2];
    mid [0] = (ax + bx)/2;
    mid[1] = (ay + by)/2;
    return mid;
    }


public void paint(Graphics g){
    for(int i = 0; i < polyList.length; i++)
    {g.fillPolygon(polyList[i]);}
}
}



Untuk Kelas Pemanggil


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

import java.awt.Color;
import java.awt.Polygon;
import java.util.Scanner;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/**
 *
 * @author umum
 */
public class Remote extends Sierpinski {
public static void main (String[] args)
    {
    int C1x = WINDOWSIZE/2;
    int C1y = WINDOWSIZE/10;
    int C2x = WINDOWSIZE-C1y;
    int C2y = WINDOWSIZE-C1y;
    int C3x = WINDOWSIZE/10;
    int C3y = WINDOWSIZE/-C1y;

    Scanner ne = new Scanner(System.in);
    System.out.println(" Apakah anda ingin bermain segitiga sierpinski? ");
    System.out.println("1. Ya");
    System.out.println("2. Tidak");
    System.out.println("Masukkan Pilihan Anda");
    int n = ne.nextInt();
    switch (n) {
        case 1:
    String input = JOptionPane.showInputDialog("Enter Your Choise Number: ");
    int splits = Integer.parseInt(input);
    polyList = new Polygon[(int)Math.pow(3,splits-1)];
    JFrame fr = new JFrame(" Sierpinski's Triangle");
    fr.setSize(WINDOWSIZE,WINDOWSIZE);
    fr.setBackground(Color.GREEN);
    fr.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    fr.setVisible(true);

    gambarSegitiga(splits,C1x,C1y,C2x,C2y,C3x,C3y);

    Sierpinski s = new Sierpinski();
    fr.add(s);
    break;
        case 2: System.exit(0);

    }
}

}


Selamat mencoba dan semoga praktikum 6 nya sukses!!!!

1 komentar:

Yarif mengatakan...

bung, aku ra donk coding kwi...lak amu pye, ngerti? :D

Posting Komentar