void setup() { size(256,256,P3D); background(200); } float h = 0f; class Point { float x,y; Point(float x, float y) { this.x = x; this.y = y; } } Point points[] = new Point[10]; int cp = 0; void draw() { background(0,0,0.7f); noStroke(); colorMode(HSB, 1.0f); points[cp++] = new Point(mouseX,mouseY); if (cp>=points.length) cp = 0; for (int i=0; i<6; i++) { beginShape(QUAD_STRIP); for (int j=0; j=1) hh--; fill(hh,(float)j/points.length,0.5f); vertex(p.x,p.y,100); vertex(p.x,p.y,0); } endShape(); translate(width/2,height/2); rotateZ(TWO_PI/6); translate(-width/2,-height/2); } h+=0.01f; if (h>=1) h-=1; }