final float RAGGIO = 85,
h = RAGGIO,
deltaROTAZIONE = 0.05,
GAP = PI/6;
color colori[];
float angoloRotazione,
H,
WIDTH2,
HEIGHT2;
void setup()
{
size(500, 500, P3D);
noStroke();
frameRate(30);
H=2.5*h;
colori=new color[36];
for(int i=0; i < 36; i++)
colori[i]=color(random(0,127), random(127,255), 0);
WIDTH2 = width/2;
HEIGHT2 = height/2;
}
void draw()
{
background(255);
angoloRotazione+=deltaROTAZIONE;
translate(WIDTH2, HEIGHT2);
rotateX(-map(mouseY, 0, width, -GAP, TWO_PI+GAP));
rotateY(angoloRotazione);
solido();
}
void solido()
{
int k=0;
beginShape(TRIANGLE_FAN);
vertex( 0, H, 0); fill(colori[k++]);
vertex( h, h, h); fill(colori[k++]);
vertex( h, h,-h); fill(colori[k++]);
vertex(-h, h,-h); fill(colori[k++]);
vertex(-h, h, h); fill(colori[k++]);
vertex( h, h, h); fill(colori[k++]);
endShape();
beginShape(TRIANGLE_FAN);
vertex( 0,-H, 0); fill(colori[k++]);
vertex( h,-h, h); fill(colori[k++]);
vertex( h,-h,-h); fill(colori[k++]);
vertex(-h,-h,-h); fill(colori[k++]);
vertex(-h,-h, h); fill(colori[k++]);
vertex( h,-h, h); fill(colori[k++]);
endShape();
beginShape(TRIANGLE_FAN);
vertex( 0, 0, H); fill(colori[k++]);
vertex( h, h, h); fill(colori[k++]);
vertex(-h, h, h); fill(colori[k++]);
vertex(-h,-h, h); fill(colori[k++]);
vertex( h,-h, h); fill(colori[k++]);
vertex( h, h, h); fill(colori[k++]);
endShape();
beginShape(TRIANGLE_FAN);
vertex( 0, 0,-H); fill(colori[k++]);
vertex( h, h,-h); fill(colori[k++]);
vertex(-h, h,-h); fill(colori[k++]);
vertex(-h,-h,-h); fill(colori[k++]);
vertex( h,-h,-h); fill(colori[k++]);
vertex( h, h,-h); fill(colori[k++]);
endShape();
beginShape(TRIANGLE_FAN);
vertex( H, 0, 0); fill(colori[k++]);
vertex( h, h, h); fill(colori[k++]);
vertex( h,-h, h); fill(colori[k++]);
vertex( h,-h,-h); fill(colori[k++]);
vertex( h, h,-h); fill(colori[k++]);
vertex( h, h, h); fill(colori[k++]);
endShape();
beginShape(TRIANGLE_FAN);
vertex(-H, 0, 0); fill(colori[k++]);
vertex(-h, h, h); fill(colori[k++]);
vertex(-h,-h, h); fill(colori[k++]);
vertex(-h,-h,-h); fill(colori[k++]);
vertex(-h, h,-h); fill(colori[k++]);
vertex(-h, h, h); fill(colori[k++]);
endShape();
}