Recursive ใน JAVA สร้าง Sierpinski triangle 

fractal Sierpinski triangle โดยใช้ภาษา JAVA




import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class TriangleFractal extends JPanel
{
public TriangleFractal()
{
setBackground(Color.black);
}
public void paint(Graphics g)
{
super.paint(g);
for(int i=0;i< 1000000;i++)
{
draw( g, 50, getWidth() - 50, getHeight()-50, getWidth()/2, getHeight()-25);
}
}

public void draw(Graphics g, double n,double w,double h,double x,double y)
{
if(n ==0)
{
g.setColor(Color.green);
g.fillRect((int)(x+Math.random()*w-w/2),(int) (y+Math.random()*h-h/2), 1, 1);
return;
}

double r= Math.random();
if(r < 1.0/3.0)
{
y = y - h /2;

}
else if(r < 2.0/3.0)
{
x = x - w/4;
}
else
{
x = x + w/4;
}
draw( g, n-1, w/2, h/2, x, y);
}
public static void main(String[] args)
{
JFrame fnt = new JFrame();

fnt.add(new TriangleFractal());
fnt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
double width = screenSize.getWidth();
double height = screenSize.getHeight();
fnt.setSize((int)width, (int)height);
fnt.setVisible(true);

}

}



 

จำนวนครั้งของ recursive n=1



จำนวนครั้งของ recursive n=2



จำนวนครั้งของ recursive n=3



จำนวนครั้งของ recursive n=4



จำนวนครั้งของ recursive n=5



จำนวนครั้งของ recursive n=6



จำนวนครั้งของ recursive n=7



จำนวนครั้งของ recursive n=30





EPT








Comments

Add Comment
Comments are not available for this entry.