
//Construct4
import processing.opengl.*;
int vertices;
void setup(){
size(500,500,OPENGL);
frameRate(10);
vertices = 48;
}
void draw(){
background(0);
for (int j=0; j<vertices; j++){
pushMatrix();
translate(width/2,height/2,width/3);
float jX = cos(j)*vertices;
float jY = sin(j)*vertices;
float jZ = cos(j)*vertices;
float rRate = radians(millis()*0.25);
translate(jX,jY);
rotate(rRate);
beginShape();
for (int i=0; i<vertices; i++){
float iX = cos(i)*(vertices);
float iY = sin(i)*(vertices);
float iZ = cos(i)*vertices+i;
float colorX = abs(iX+jX)*2;
float colorY = abs(iY+jY)*2;
float colorZ = abs(iZ+jZ)*2;
float colorA = abs(i+j)*2;
fill(colorX,colorY,colorZ,colorA);
vertex(iX,iY,iZ);
}
endShape();
popMatrix();
}
}