Come risulta chiaro dal confronto con questo post QtQuick eredita molta della struttura del codice da Javascript anche se vi sono comunque differenze. Per esempio la stampa con il comando
context.fillRect(j,i,1,1);
in QtQuick e' dovuta diventare
ctx.moveTo(j,i);
ctx.lineTo(j+1,i+1);
----------------------------------------------------
import QtQuick 2.0
Canvas {
id : canvas
width : 640
height : 640
MouseArea {
anchors.fill: parent
onClicked: { }
}
onPaint: {
var re_min = -2.0;
var im_min = -1.2;
var re_max = 1.0;
var im_max = 1.2;
var iterazioni = 255;
var r;
var a,b;
var x,y,x_new,y_new;
var k,j,i;
var SCREEN_HEIGHT = 640;
var SCREEN_WIDTH = 640;
var re_factor = (re_max-re_min);
var im_factor = (im_max-im_min);
var ctx = canvas.getContext('2d');
ctx.fillRect(0,0,SCREEN_WIDTH,SCREEN_HEIGHT);
ctx.save();
ctx.strokeStyle = "#FFFFFF";
for (var i=0;i<SCREEN_WIDTH;i++) {
for (var j=0;j<SCREEN_HEIGHT;j++) {
a = re_min+(j*re_factor/SCREEN_WIDTH);
b = im_min+(i*im_factor/SCREEN_HEIGHT);
x = 0;
y = 0;
for (var 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)
{
r = k%2;
if (r == 1)
{
ctx.beginPath();
ctx.moveTo(j,i);
ctx.lineTo(j+1,i+1);
ctx.stroke();
}
break;
}
x = x_new;
y = y_new;
}
}
}
}
}
----------------------------------------------------
Nessun commento:
Posta un commento