Código:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
public class Fractal extends JFrame {
Image img;
public static void main(String[] args){
E10_Fractal pizarra = new E10_Fractal();
int [] coordX = { 250,500,750};
int [] coordY = { 700,0,700} ;
pizarra.dibuja(coordX,coordY,3,1);
}
public Fractal(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Fractal");
setResizable(false);
setSize(1000,1000);
setVisible(true);
img = createImage(1000,1000);
}
public void paint(Graphics g){
g.drawImage(img,0,25,this);
}
public void dibuja(int [] coordX, int [] coordY, int lados, int contador){
if(contador==1){
Graphics g = img.getGraphics();
g.setColor( new Color(255,0,0));
g.fillPolygon(coordX,coordY,lados);
g.setColor( new Color(0,0,0));
g.drawPolygon(coordX,coordY,lados);
}
dibuja( altoX(coordX), altoY(coordY), lados ,contador-1);
dibuja( izquierdaX(coordX), izquierdaY(coordY), lados ,contador-1);
dibuja (derechaX(coordX), derechaY(coordY), lados ,contador-1);
}
public static int [] altoX(int [] coord){
coord[2]= coord[1];
coord[1]= (coord[0]+coord[1])/2;
return coord;
}
public static int [] altoY(int [] coord){
coord[1]= (coord[0]+coord[1])/2;
return coord;
}
public static int [] izquierdaX(int [] coord){
coord[0]= (coord[0]+coord[1])/2;
coord[2]= (coord[1]+coord[2])/2;
return coord;
}
public static int [] izquierdaY(int [] coord){
coord[0]= (coord[0]+coord[1])/2;
return coord;
}
public static int [] derechaX(int [] coord){
coord[0]= coord[1];
coord[1]= (coord[1]+coord[2])/2;
return coord;
}
public static int [] derechaY(int [] coord){
coord[1]= (coord[0]+coord[1])/2;
return coord;
}
}