# Can someone tell me what is wrong with my conversion of this code?

``````//
// Conversione in P5.js di "Quasicrystals as sums of waves in the plane"
// http://mainisusuallyafunction.blogspot.it/2011/10/quasicrystals-as-sums-of-waves-in-plane.html
//

var dimPix = 0.4;
var numeroLivelli = 7;

var passoOrientamenti;

var xPixMax;
var yPixMax;

function setup()
{
createCanvas(400, 400);
//createCanvas(windowWidth, windowHeight);

pixelDensity(1);
background(0);

passoOrientamenti = PI / numeroLivelli;
xPixMax = width / 2;
yPixMax = height / 2;

}

function draw()
{
var tempo = frameCount*0.1;

var iPix = 0;
for (var yPix = -yPixMax;  yPix < yPixMax;  yPix++)
{
var y = yPix*dimPix;

for (var xPix = -xPixMax;  xPix < xPixMax;  xPix++, iPix+=4)
{
var x = xPix*dimPix;

var orientamento = 0.0;
var seno;
var coseno;
var somma = 0;

for (var i = 0; i < numeroLivelli; i++) {
seno = sin(orientamento);
coseno = cos(orientamento);
somma += (atan( coseno*x + seno*y + tempo) + 1.0) / 2.0;
orientamento += passoOrientamenti;
}

var interoSomma = floor(somma);
var decimaliSomma = somma - interoSomma;
somma = (interoSomma % 2) == 0 ? decimaliSomma : 1.0 - decimaliSomma;

var grigio = somma*256;
pixels[iPix] = grigio;
pixels[iPix+1] = grigio;
pixels[iPix+2] = grigio;
}
}
updatePixels();
}
``````

The image one the left shows the original code above the image on the right shows the code below

``````//
// Conversione in P5.js di "Quasicrystals as sums of waves in the plane"
// http://mainisusuallyafunction.blogspot.it/2011/10/quasicrystals-as-sums-of-waves-in-plane.html
//

float dimPix = 0.4;//.4
int numeroLivelli =7;//7

float passoOrientamenti;

int xPixMax;
int yPixMax;

void setup()
{
size(400, 400,P3D);
//createCanvas(windowWidth, windowHeight);

//  pixelDensity(1);
background(0);

float  passoOrientamenti = PI / numeroLivelli;
xPixMax = width / 2;
yPixMax = height / 2;

all= width*height;
}
int all;
void draw()
{
float tempo = frameCount*0.1;

int  iPix = 0;
for (int yPix = -yPixMax;  yPix < yPixMax;  yPix++)
{
float y = yPix*dimPix;

for (int xPix = -xPixMax;  xPix < xPixMax;  xPix++, iPix+=4)
{
float x = xPix*dimPix;

float orientamento = 0.0;
float seno;
float coseno;
float somma = 0;

for (int i = 0; i < numeroLivelli; i++) {
seno = sin(orientamento);
coseno = cos(orientamento);
somma += (atan( coseno*x + seno*y + tempo) + 1.0) / 2.0;
orientamento += passoOrientamenti;
}

float interoSomma = floor(somma);
float decimaliSomma = somma - interoSomma;
somma = (interoSomma % 2) == 0 ? decimaliSomma : 5 - decimaliSomma;//1.0

int grigio = int( somma*256);//256
int val = iPix/4;
// pixels[val] = grigio;
// if(val<all-1)pixels[val+1] = grigio;
pixels[iPix/4] = grigio;
//pixels[iPix+1] = grigio;
//pixels[iPix+2] = grigio;
}
}
updatePixels();
}
``````

Can anyone see what is wrong with my conversion code?

This matches your desired outcome I think …

``````//
// Conversione in P5.js di "Quasicrystals as sums of waves in the plane"
// http://mainisusuallyafunction.blogspot.it/2011/10/quasicrystals-as-sums-of-waves-in-plane.html
//

var dimPix = 0.4;
var numeroLivelli = 7;

var passoOrientamenti;

var xPixMax;
var yPixMax;

function setup()
{
createCanvas(400, 400);
//createCanvas(windowWidth, windowHeight);

pixelDensity(1);
background(0);

passoOrientamenti = PI / numeroLivelli;
xPixMax = width / 2;
yPixMax = height / 2;

}

function draw()
{
var tempo = frameCount*0.1;

var iPix = 0;
for (var yPix = -yPixMax;  yPix < yPixMax;  yPix++)
{
var y = yPix*dimPix;

for (var xPix = -xPixMax;  xPix < xPixMax;  xPix++, iPix+=4)
{
var x = xPix*dimPix;

var orientamento = 0.0;
var seno;
var coseno;
var somma = 0;

for (var i = 0; i < numeroLivelli; i++) {
seno = sin(orientamento);
coseno = cos(orientamento);
somma += (atan( coseno*x + seno*y + tempo) + 1.0) / 2.0;
orientamento += passoOrientamenti;
}

var interoSomma = floor(somma);
var decimaliSomma = somma - interoSomma;
somma = (interoSomma % 2) == 0 ? decimaliSomma : 1.0 - decimaliSomma;

var grigio = somma*256;
pixels[iPix] = grigio;
pixels[iPix+1] = grigio;
pixels[iPix+2] = grigio;
}
}
updatePixels();
}
``````