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