final int dim=120;
final int dim2=dim/2;
boolean divisi=false;
float XC, YC;
float angolo=0,
passo=0.03;
void setup()
{
size(500, 250, P3D);
frameRate(30);
stroke(127);
XC=width/2;
YC=height/2;
}
void mousePressed() { divisi=true; }
void mouseReleased() { divisi=false; }
void draw()
{
background(255);
angolo+=passo;
pushMatrix();
translate((divisi)?(XC-dim):(XC), YC);
rotateX(angolo);
fill(255, 0, 0, 90);
rect(-dim2, -dim2, dim, dim);
popMatrix();
pushMatrix();
translate(XC, YC);
rotateY(angolo);
fill(0, 255, 0, 90);
rect(-dim2, -dim2, dim, dim);
popMatrix();
pushMatrix();
translate((divisi)?(XC+dim):(XC), YC);
rotateZ(angolo);
fill(0, 0, 255, 90);
rect(-dim2, -dim2, dim, dim);
popMatrix();
}