final float GAP=PI/6;
final float asseMin=-PI-GAP,
asseMax=+PI+GAP;
int maxX, maxY;
int Xc, Yc;
float dim1, dim12, dim2;
float asseX, asseY;
void setup()
{
size(500, 500, P3D);
frameRate(30);
noStroke();
maxX=width; maxY=height;
Xc=width/2; Yc=height/2;
dim1=0.75*width;
dim12=dim1/2;
dim2=0.025*width;
noLoop();
}
void mouseMoved()
{
asseY = +map(mouseX, 0, maxX-1, asseMin, asseMax);
asseX = -map(mouseY, 0, maxY-1, asseMin, asseMax);
redraw();
}
void draw()
{
background(255);
translate(Xc, Yc);
rotateX(asseX);
rotateY(asseY);
fill(125, 0, 0); box(dim1, dim2, dim2);
translate(dim12, 0);
fill(255, 0, 0); sphere(dim2);
translate(-dim12, 0);
fill(0, 125, 0); box(dim2, dim1, dim2);
translate(0, -dim12);
fill(0, 255, 0); sphere(dim2);
translate(0, dim12);
fill(0, 0, 125); box(dim2, dim2, dim1);
translate(0, 0, dim12);
fill(0, 0, 255); sphere(dim2);
}