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)
Riparazione volante Logitech G920
Con il tempo la pedaliera del Logitech G920 ha cominciato a fare i capricci in particolare per quanto riguarda l'acceleratore Ho provato...
-
Per lo shield WiFly e' stata effettuata la patch descritta qui Per la connessione del lettore Rfid si usano i seguenti pin VCC ...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
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...
Nessun commento:
Posta un commento