Blog hecho para la Materia de Graficacion de la carrera de ing. en sistemas computacionales del Instituto Tecnologico de la Laguna. Las publicaciones de este blog seran conforme vallamos avanzando en el curso, asi que se publicara codigo e imagenes para que sean de provecho para todos que quieran aprender.
domingo, 25 de septiembre de 2011
Fractal de Mandel
Codigo del fractal de Mandel. Fractal hecho a base de pixeles rojos. El codigo es muy corto y facil de
implementar, aqui abajo esta.
class TForm1 : public TForm
{
__published: // IDE-managed Components
TTimer *Timer1;
void __fastcall Timer1Timer(TObject *Sender);
private: // User declarations
public: // User declarations
int maxX, maxY, Limite, i, j, Pasos, Terminar;
double PasoX, PasoY, PosX, PosY, OrigX, OrigY,
DimX, DimY, IterX, IterY, TempX;
__fastcall TForm1(TComponent* Owner);
};
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
maxX = ClientWidth;
maxY = ClientHeight;
Limite = 100;
OrigX = -2.0;
OrigY = -1.25;
DimX = 0.5;
DimY = 1.25;
PasoX = (DimX - OrigX) / maxX;
PasoY = (DimY - OrigY) / maxY;
for(i = 0; i <= maxX; i++)
{
for(j =0; j <= maxY; j++)
{
PosX = OrigX + i * PasoX;
PosY = OrigY + j * PasoY;
IterX = 0.0;
IterY = 0.0;
Terminar = Pasos = 0;
while(!Terminar)
{
TempX = (IterX * IterX) - (IterY * IterY) + PosX;
IterY = 2 * (IterX * IterY) + PosY;
IterX = TempX;
Pasos++;
if(hypot(fabs( IterX), fabs( IterY)) >= 2.0)
{
Terminar++;
}
if(Pasos >= Limite)
{
Terminar++;
}
if(Form1->OnKeyPress)
{
i = maxX;
j = maxY;
Terminar++;
}
}
if(Pasos < Limite)
{
Canvas->Pixels[i][j] = clRed;
}
}
}
}
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario