Il cono รจ realizzato come una piramide con 36 lati di base
- Mouse (posizione verticale): rotazione intorno all’asse x
- Applicazione Java
final int numFACCE = 36; final float RAGGIO = 150, ALTEZZA = 150, deltaANGOLO = TWO_PI/numFACCE, deltaROTAZIONE = 0.05, GAP = PI/6; float angoloRotazione, WIDTH2, HEIGHT2, SENO[], COSENO[]; color COLORI[]; void setup() { size(500, 500, P3D); frameRate(30); noStroke(); WIDTH2 =width/2; HEIGHT2=height/2; COLORI=new color[numFACCE+1]; for(int i=0; i < numFACCE; i++) COLORI[i]=color(random(0, 125), random(128, 255), random(0, 125)); COLORI[numFACCE]=COLORI[0]; SENO =new float[numFACCE+1]; COSENO=new float[numFACCE+1]; float angolo=0; for(int i=0; i < numFACCE+1; i++) { SENO[i] = sin(angolo)*RAGGIO; COSENO[i] = cos(angolo)*RAGGIO; angolo += deltaANGOLO; } } void draw() { background(255); angoloRotazione+=deltaROTAZIONE; translate(WIDTH2, HEIGHT2); rotateX(-map(mouseY, 0, width, -GAP, TWO_PI+GAP)); rotateY(angoloRotazione); solido(); } void solido() { beginShape(TRIANGLE_FAN); // parete laterale vertex(0, ALTEZZA, 0); for (int i=0; i < numFACCE+1; i++) { fill(COLORI[i]); vertex(COSENO[i], -ALTEZZA, SENO[i]); } endShape(); beginShape(TRIANGLE_FAN); // base vertex(0, -ALTEZZA, 0); for (int i=0; i < numFACCE+1; i++) { fill(COLORI[i]); vertex(COSENO[i], -ALTEZZA, SENO[i]); } endShape(); }