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(); }