Mandelbrot mit MFC



  • 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ß


Anmelden zum Antworten