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)
Change Detection with structural similarity
L'idea di base e' quella di cercare le differenze tra le due immagini sottostanti Non e' immediatamente visibile ma ci sono dei ...
-
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...
-
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...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
Nessun commento:
Posta un commento