martedì 22 gennaio 2013

Mandelbrot in QT

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;
}

Nessun commento:

Posta un commento

RTK data in DJI log

Rispetto al precedente post ho letto che il parser non estrae tutte le informazioni dal log. A me interessano i dati RTK del drone. Per est...