Anteriormente hice una publicación de el fractal conocido como el fractal de mandelbrot, en una aplicación en c++ builder, en esta aplicación utilizo el mismo algoritmo pero implementado en c#.
aquí les dejo el código de dicha aplicación:
int maxx, maxy, Limite, Pasos, Terminar;
double PasoX, PasoY, PosX, PosY, OrigX, OrigY, DimX, DimY, IterX, IterY, TempX;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.Refresh();
Bitmap bmp = new Bitmap(this.ClientSize.Width, ClientSize.Height);
maxx = this.ClientSize.Width;
maxy = this.ClientSize.Height;
Limite = 100;
OrigX = -2.0;
OrigY = -1.25;
DimX = 0.5;
DimY = 1.25;
PasoX = (DimX - OrigX) / maxx;
PasoY = (DimY - OrigY) / maxy;
for (int i = 0; i < maxx; i++)
for (int j = 0; j < maxy; j++)
{
PosX = OrigX + i * PasoX;
PosY = OrigY + j * PasoY;
IterX = 0.0;
IterY = 0.0;
Terminar = Pasos = 0;
while (Terminar==0)
{
TempX = (IterX * IterX) - (IterY * IterY) + PosX;
IterY = 2 * (IterX * IterY) + PosY;
IterX = TempX;
Pasos++;
double r, s;
r = (double)Math.Abs(IterX) * Math.Abs(IterX);
s =(double) Math.Abs(IterY) * Math.Abs(IterY);
if (Math.Sqrt(r+s) >= 2.0)
Terminar++;
if (Pasos >= Limite) Terminar++;
i=maxx;
j=maxy;
Terminar++;
}
if (Pasos < Limite)
bmp.SetPixel(i, j, Color.Blue);
}
Graphics g = this.CreateGraphics();
g.DrawImage(bmp, 0, 0, bmp.Width, bmp.Height);
}
esta es la ejecución de este código:
aqui puedes descargar la aplicación.
Maraca un error en
ResponderEliminarif (Pasos < Limite)
bmp.SetPixel(i, j, Color.Blue);
Dice: El parametro debe ser positivo y menor que el ancho, podrias subir el proyecto completo por favor?
Gracias de antemano