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...