RGB cube

3D > Form > RGBCube

  • Mouse (verticale): rotazione intorno all’asse X
  • Mouse (orizzontale): rotazione intorno all’asse Y
  • Applicazione Java
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();  
}