B
Hallo zusammen,
also ich möchte die Mandelbrotmengen mit MFC C++ darstellen, hab aber folgendes Problem: Beim Ergebnis der Iterationberechnung erhalte ich immer den selben Wert und ich weiß absolut nicht woran das liegen kann -.-
Verwende Visual Studio 2008
void CApfelmnnchenView::OnBnClickedBberechnen()
{
UpdateData(TRUE);
int I=0;
double delta = 0;
double Re, Im;
COLORREF Farbe;
CClientDC dc(this);
delta = m_dSeite/(m_iSpalte*m_iZeile);
for(int x = 0; x<=m_iSpalte; x++)
{
Re = x*delta + m_dRe0;
for(int y = 0; y<=m_iZeile; y++)
{
Im = y*delta + m_dIm0;
I=Mandelbrot_Berechnen(x,y,delta,Re,Im);
Farbe = Farbe_Berechnen(I);
dc.SetPixel(x+50,y+150,Farbe);
}
}
}
int CApfelmnnchenView::Mandelbrot_Berechnen(int Spalte, int Zeile, double delta,double Re, double Im)
{
int i=0;
double Rez=0, Imz=0, tmp=0;
do
{
tmp = Rez*Rez - Imz*Imz + Re;
Imz = 2 * Rez * Imz + Im;
Rez = tmp;
i++;
}while((i<=5000) && ((Rez*Rez + Imz*Imz)<4));
return i;
}
COLORREF CApfelmnnchenView::Farbe_Berechnen(int i)
{
int Farben[3];
if (i<=150)
{
Farben[0] = 234;
Farben[1] = 125;
Farben[2] = 48;
}
else if(i>150 && i<=500)
{
Farben[0] = 34;
Farben[1] = 200;
Farben[2] = 25;
}
else if(i>500 && i<=950)
{
Farben[0] = 255;
Farben[1] = 255;
Farben[2] = 0;
}
else if(i>950 && i<=1500)
{
Farben[0] = 0;
Farben[1] = 255;
Farben[2] = 255;
}
else if(i>1500 && i<=2500)
{
Farben[0] = 255;
Farben[1] = 0;
Farben[2] = 255;
}
else if(i>2500 && i<=3500)
{
Farben[0] = 255;
Farben[1] = 0;
Farben[2] = 0;
}
else if(i>3500 && i<=4000)
{
Farben[0] = 0;
Farben[1] = 255;
Farben[2] = 0;
}
else
{
Farben[0] = 0;
Farben[1] = 0;
Farben[2] = 0;
}
return RGB(Farben[0],Farben[1],Farben[2]);
}
so wie ich mich kenne, ist der Fehler ziemlich trivial und ich steh einfach mal wieder aufm Schlauch! Hoffe mir kann da aber jemand helfen!
Gruß