fenetrebuddha::fenetrebuddha(QWidget *parent) : QWidget(parent), pixmap(1200,1200) { setFixedSize(1100,650); QGraphicsScene *scene = new QGraphicsScene(); QGraphicsView *view = new QGraphicsView(scene,this); for (int i=-600;i<=600;i++) //on commence par un carré { for (int j=-600;j<=600;j++) { int iteration_max = 25; int pixel_x=0; int pixel_y=0; double x=0; double y=0; double a=0; int h=0; int dummy=0; double liste_buddha_x[25]={0}; //ici 25 est l'itération maximale double liste_buddha_y[25]={0}; while (h<iteration_max && x*x+y*y<4) { a=x; x=x*x-y*y+((double)i)/300; y=2*a*y+((double)j)/300; liste_buddha_x[h]=x; liste_buddha_y[h]=y; h++; } if (h<iteration_max) { for (int k=0; k<=h;k++) { QPainter *p_fractale_3 = new QPainter(&pixmap); p_fractale_3->setPen(QPen(Qt::black)); pixel_x=300*liste_buddha_x[k]+600; pixel_y=300*liste_buddha_y[k]+600; p_fractale_3->drawPoint(pixel_x,pixel_y); delete p_fractale_3; } } else { dummy=1; } } } scene->addPixmap(pixmap); view->move(10,10); }
fenetremandelbrot::fenetremandelbrot(QWidget *parent) : QWidget(parent) , pixmap(1200,1200) { setFixedSize(1100,650); QGraphicsScene *scene = new QGraphicsScene(); QGraphicsView *view = new QGraphicsView(scene,this); QPainter *p_fractale = new QPainter(&pixmap); //le compteur est initialisé à 0. Il va servir à l'it_max int a[2]; int c[2]; a[0]=0; a[1]=0; c[0]=1200; c[1]=1200; // On commence par le carré classique vector<vector<int> > mandelbrot = Mandelbrot(100, a, c); //ici l'iteration max est 100. int compteur = 0; while (compteur<1200*1200) { if (mandelbrot[compteur][2]==100) //100 est l'iteration max ici { p_fractale->setPen(QPen(Qt::black)); p_fractale->drawPoint(mandelbrot[compteur][0],mandelbrot[compteur][1]); } if (1<=mandelbrot[compteur][2] && mandelbrot[compteur][2]<15) { p_fractale->setPen(QPen(Qt::darkBlue)); p_fractale->drawPoint(mandelbrot[compteur][0],mandelbrot[compteur][1]); } if (15<=mandelbrot[compteur][2] && mandelbrot[compteur][2]<30) { p_fractale->setPen(QPen(Qt::blue)); p_fractale->drawPoint(mandelbrot[compteur][0],mandelbrot[compteur][1]); } if (30<=mandelbrot[compteur][2] && mandelbrot[compteur][2]<45) { p_fractale->setPen(QPen(Qt::darkCyan)); p_fractale->drawPoint(mandelbrot[compteur][0],mandelbrot[compteur][1]); } if (45<=mandelbrot[compteur][2] && mandelbrot[compteur][2]<100) { p_fractale->setPen(QPen(Qt::cyan)); p_fractale->drawPoint(mandelbrot[compteur][0],mandelbrot[compteur][1]); } compteur++; } delete p_fractale; scene->addPixmap(pixmap); view->move(10,10); }