Un classico di questo blog ovvero disegnare l'insieme di Mandelbrot con varie librerie grafiche
Per questo esempio e' stata usata come base il post "Disegnare in QT" con la differenza che in questo caso non vengono disegnate linee bensi' punti
il trucco per disegnare punti risiede nella linea che e' stata evindeziata in colore giallo ovvero utilizzando una primitiva di una ellisse di raggio molto piccolo
dialog.cpp
---------------------------------------------------
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
float re_min = -2.0;
float im_min = -1.2;
float re_max = 1.0;
float im_max = 1.2;
int iterazioni = 255;
int SCREEN_WIDTH = 640;
int SCREEN_HEIGHT = 480;
float a,b;
float x,y,x_new,y_new;
int k,j,i,test;
float re_factor = (re_max-re_min);
float im_factor = (im_max-im_min);
ui->setupUi(this);
scene = new QGraphicsScene(this);
ui->graphicsView->setScene(scene);
QBrush brush(Qt::black);
QPen penna(Qt::black);
penna.setWidth(1);
for (i=0;i<SCREEN_HEIGHT;i++)
{
for (j=0;j<SCREEN_WIDTH;j++)
{
a = re_min+(j*re_factor/SCREEN_WIDTH);
b = im_min+(i*im_factor/SCREEN_HEIGHT);
x = 0;
y = 0;
test = 0;
for (k=0;k<iterazioni;k++)
{
x_new = (x*x)-(y*y)+a;
y_new = (2*x*y)+b;
if (((x_new*x_new)+(y_new*y_new))>4)
{
test = k;
if (k%2 == 0)
scene->addEllipse(j,i,0.1,0.1,penna,brush);
break;
}
x = x_new;
y = y_new;
}
}
}
//linea = scene->addLine(100,100,100,100,penna);
}
Dialog::~Dialog()
{
delete ui;
}
Iscriviti a:
Commenti sul post (Atom)
Dockerizza Flask
Un esempio semplice per inserire in un container Docker una applicazione Flask Partiamo da una semplice applicazione che ha un file app.py ...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...
Nessun commento:
Posta un commento