Glut und Grauwerte



  • Hallo, ich habe hier ein Quelltext für die Mandelbrotmengendarstellung

    #include <GL/glut.h>
    
    double MinRe = -2.0;
    double MaxRe = 1.0;
    double MinIm = -1.2;
    double MaxIm = MinIm+(MaxRe-MinRe);
    double Re_factor = (MaxRe-MinRe)/(399);
    double Im_factor = (MaxIm-MinIm)/(399);
    unsigned MaxIterations = 100;
    
    void draw()
    {
    
      glClear(GL_COLOR_BUFFER_BIT );
      //Draw order
    
      glBegin(GL_POINTS);
    
    		for(unsigned y=0; y<400; ++y)
      {
        double c_im = MaxIm - y*Im_factor;
        for(unsigned x=0; x<400; ++x)
        {
            double c_re = MinRe + x*Re_factor;
    
            double Z_re = c_re, Z_im = c_im;
            bool isInside = true;
    				int k=0;
            for(unsigned n=0; n<MaxIterations; ++n)
            { 
    
                double Z_re2 = Z_re*Z_re, Z_im2 = Z_im*Z_im;
                if(Z_re2 + Z_im2 > 4)
                {
                    isInside = false;
                    break;
                }
                Z_im = 2*Z_re*Z_im + c_im;
                Z_re = Z_re2 - Z_im2 + c_re;
    						k++;
            }
            if(isInside) 
    					{  
    						 float col=(100-k)/100.0;
    					   glColor3f(col,col,col); 
    						 glVertex2f(x,y);
    					}
        }
    }
    
      glEnd();
    
      glFlush();
    }
    
    //Main program
    int main(int argc, char **argv)
    {
      glutInit(&argc, argv);
      //Simple buffer
      glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB ); 
      glutInitWindowPosition(400,50);
      glutInitWindowSize(400,400);
      glutCreateWindow("new window");
      glClearColor(1,1,1,1);
    
      glMatrixMode(GL_PROJECTION);
      glLoadIdentity();
      glOrtho(0.0,400.0,0.0,400.0,-1.0,1.0);
    
      glutDisplayFunc(draw);
      glutMainLoop();
      return 0;
    }
    

    Was bei mir nicht funktioniert ist die Darstellung der Konvergenz in Abhängigkeit von der Schrittweite (Zeile 44-46). Ich verstehe nicht, was ich falsch mache und nur schwarz weiß dargestellt wird.



  • Wenn alle drei Komponenten einer RGB-Farbe denselben Wert bekommen (Zeile 45) ist es eine Graustufe. Musst schon ein bisschen Kreativer werden 😉



  • Swordfish schrieb:

    Wenn alle drei Komponenten einer RGB-Farbe denselben Wert bekommen (Zeile 45) ist es eine Graustufe. Musst schon ein bisschen Kreativer werden 😉

    Ja ich will auch nur Graustufen, ich brauch keine Farben ich hab den Titel geändert.

    Hat niemand eine Idee? Ich weiß nicht warum aber aus irgendeinem Grund geht der Zähler nicht... 😞


Log in to reply