final float gap=PI/6;
final float dim=120;
float asseX, asseY;
float asseMin, asseMax;
int Xc, Yc;
int maxX, maxY;
void setup()
{
size(500, 500, P3D);
noStroke();
colorMode(RGB, 1);
Xc=width/2;
Yc=height/2;
maxX=width-1;
maxY=height-1;
asseMin=-gap;
asseMax=TWO_PI+gap;
noLoop();
}
void mouseMoved()
{
asseY = map(mouseX, 0, maxX, asseMin, asseMax);
asseX = map(mouseY, 0, maxY, asseMin, asseMax);
redraw();
}
void draw()
{
background(1);
translate(Xc, Yc);
rotateX(-asseX);
rotateY(-asseY);
scale(dim);
beginShape(QUADS);
fill(0, 1, 1); vertex(-1, 1, 1);
fill(1, 1, 1); vertex( 1, 1, 1);
fill(1, 0, 1); vertex( 1, -1, 1);
fill(0, 0, 1); vertex(-1, -1, 1);
fill(1, 1, 1); vertex( 1, 1, 1);
fill(1, 1, 0); vertex( 1, 1, -1);
fill(1, 0, 0); vertex( 1, -1, -1);
fill(1, 0, 1); vertex( 1, -1, 1);
fill(1, 1, 0); vertex( 1, 1, -1);
fill(0, 1, 0); vertex(-1, 1, -1);
fill(0, 0, 0); vertex(-1, -1, -1);
fill(1, 0, 0); vertex( 1, -1, -1);
fill(0, 1, 0); vertex(-1, 1, -1);
fill(0, 1, 1); vertex(-1, 1, 1);
fill(0, 0, 1); vertex(-1, -1, 1);
fill(0, 0, 0); vertex(-1, -1, -1);
fill(0, 1, 0); vertex(-1, 1, -1);
fill(1, 1, 0); vertex( 1, 1, -1);
fill(1, 1, 1); vertex( 1, 1, 1);
fill(0, 1, 1); vertex(-1, 1, 1);
fill(0, 0, 0); vertex(-1, -1, -1);
fill(1, 0, 0); vertex( 1, -1, -1);
fill(1, 0, 1); vertex( 1, -1, 1);
fill(0, 0, 1); vertex(-1, -1, 1);
endShape();
}