Java - fractales

 
Vista:

fractales

Publicado por paula1212 (2 intervenciones) el 07/02/2009 21:36:48
mi algoritmo trata de fractales introduces unas transformaciones y a partir de ahí dibuja un objeto pero no funciona!
Alguien m puede decir como hacer para que mi algoritmo funcione?

import java.awt.*;
import java.applet.*;
import utilesCurso.*;
import java.util.ArrayList;

public class fractal extends Applet {
int p = Consola.pideInt("escribe el numero de transformaciones");
double area[][]= new double [p][7];
static int puntos[][]= new int [2][1500];
double coordenadas[][][]= new double [2][p][4];
double transformaciones[][]= new double [p][6];

public void paint(Graphics g){
setPreferredSize(new Dimension(640, 480));
setBackground(new Color(255, 255, 255));
g.setColor(new Color(90, 185, 37));
double x1=0;
double y1=0;
double x2=0;
double y2=1;
double x3=1;
double y3=0;
double x4=1;
double y4=1;

for (int i=0;i<p;i++){
transformaciones[i][0] = Consola.pideDouble("Escribe la a de la transformacion " + (i-1));
transformaciones[i][1]= Consola.pideDouble("Escribe la b de la transformacion "+i);
transformaciones[i][2]= Consola.pideDouble("Escribe la c de la transformacion "+i);
transformaciones[i][3]= Consola.pideDouble("Escribe la d de a transformacion "+i);
transformaciones[i][4]= Consola.pideDouble("Escribe la e de la transformacion "+i);
transformaciones[i][5]= Consola.pideDouble("Escribe la f de la transformacion "+i);}

for (int i=0;i<p;i++){
coordenadas[0][i][0]= transformaciones[i][0]*x1 + transformaciones[i][1]*y1 + transformaciones[i][4];
coordenadas[0][i][1]= transformaciones[i][0]*x2 + transformaciones[i][1]*y2 + transformaciones[i][4];
coordenadas[0][i][2]= transformaciones[i][0]*x3 + transformaciones[i][1]*y3 + transformaciones[i][4];
coordenadas[0][i][3]= transformaciones[i][0]*x4 + transformaciones[i][1]*y4 + transformaciones[i][4]; ;
}
for (int i=0;i<p;i++){
coordenadas[1][i][0]= transformaciones[i][2]*x1 + transformaciones[i][3]*y1 + transformaciones[i][5];
coordenadas[1][i][1]= transformaciones[i][2]*x2 + transformaciones[i][3]*y2 + transformaciones[i][5];
coordenadas[1][i][2]= transformaciones[i][2]*x3 + transformaciones[i][3]*y3 + transformaciones[i][5];
coordenadas[1][i][3]= transformaciones[i][2]*x4 + transformaciones[i][3]*y4 + transformaciones[i][5];
}
for (int i=0;i<p;i++){
area[i][0]= coordenadas [0][i][0];
area [i][1]= coordenadas [0][i][3];
area [i][2]= coordenadas [1][i][0];
area [i][3]= coordenadas [1][i][3];
}
area=calculaArea(area);
area=calculaProbabilidad(area);
area=calculaIntervalo(area);
puntos=calculaPuntos(area,transformaciones);

for (int i=0;i<10;i++){
System.out.print(puntos[0][i]+" ");
}
for (int j=110;j<120;j++){
System.out.print(puntos[1][j]+" ");
}

for (int k=0;k<15000;k++){
g.drawLine(puntos[0][k],puntos[1][k],puntos[0][k],puntos[1][k]);
}

}

public static double[][] calculaArea ( double area [][]){
double Area;
for (int i=0;i<area.length;i++){
double X= area[i][1]-area[i][0];
double Y= area[i][3]-area[i][2];
Area = X*Y;
area[i][4]=Area;
}return area;
}
public static double[][] calculaProbabilidad ( double area [][]){
double areaTotal=0;
double probabilidad=0;
for (int i=0;i<area.length;i++){
areaTotal= areaTotal+ area[i][4];
}for (int j=0;j<area.length;j++){
probabilidad=area[j][4]/areaTotal;
area[j][5]=probabilidad;
}
return area;
}
public static double[][] calculaIntervalo ( double area [][]){
double probabilidad=0;
for (int j=0;j<area.length;j++){
probabilidad=probabilidad +area[j][5];
area[j][6]=probabilidad;
}
return area;
}
public static int[][] calculaPuntos ( double area [][], double transformaciones[][]){
double x=0;
double y=0;
int xn=0;
int yn=0;
int puntos[][]= new int [2][15000];
double numeroAzar;
int posicion=0;
for (int i=0;i<15000;i++){
numeroAzar=Math.random();
for (int j=0;j<area.length;j++){
if (numeroAzar<area[j][6]){
posicion=j;
}
x=transformaciones[posicion][0]*x+transformaciones[posicion][1]*y+transformaciones[posicion][4];
y=transformaciones[posicion][2]*x+transformaciones[posicion][3]*y+transformaciones[posicion][5];
xn=(int)(360*x-90);
yn=(int)(-250*y+260);
puntos[0][i]=xn;
puntos[1][i]=yn;
}
}

return puntos;
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:fractales

Publicado por mario (622 intervenciones) el 10/02/2009 17:21:52
pero q fractal es : conjuntos de Julia , Mandelbrot?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:fractales

Publicado por paula1212 (2 intervenciones) el 10/02/2009 19:47:10
se tratan de sistemas d funciones iteradas introduces los números de las transformaciones que quieras triangulo de sierpinski hoja de helecho..y aplica las transformaciones i debe dibujarlo pero en mi caso obtiene bien los puntos pero al final no dibuja y no encuentro el error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar