Triangle strip

Basics > Form > TriangleStrip

  • Mouse (tasto): aumenta il numero di triangoli
  • Mouse (Ctrl+tasto): diminuisce il numero di triangoli
  • Applicazione Java
final int maxPUNTI=32;
final int minPUNTI=8;

float   PUNTI = 12;
float   RUOTA,
        xc, yc,
        raggio1,
        raggio2;
boolean cresce=true;

void setup()
{
   size(500, 500);
   stroke(127);
   smooth();

   xc = width/2.0;
   yc = height/2.0;
   raggio1 = 0.95*xc;
   raggio2 = 0.5*xc;
   RUOTA=360.0/PUNTI;
   
   noLoop();
}

void keyPressed()  { cresce=false; }
void keyReleased() { cresce=true;  }

void mousePressed()
{
   if(cresce && PUNTI < maxPUNTI) 
   { 
       PUNTI+=2; 
       RUOTA=360.0/PUNTI; 
       redraw(); 
   }
   else if(!cresce && PUNTI > minPUNTI)
   {
       PUNTI-=2;
       RUOTA=360.0/PUNTI;
       redraw();
   }   
}

void draw()
{
   float px = 0,
         py = 0,
	 angolo = 0;

   background(255);
   
   beginShape(TRIANGLE_STRIP); 
   for (int i=0; i < PUNTI; i++)
   {
	  fill(127, 127, 0);
	  px = xc+cos(radians(angolo))*raggio2;
	  py = yc+sin(radians(angolo))*raggio2; 
	  vertex(px, py);
	  angolo += RUOTA;      

	  fill(0, 0, 127);
	  px = xc+cos(radians(angolo))*raggio1;
	  py = yc+sin(radians(angolo))*raggio1; 
	  vertex(px, py); 
	  angolo += RUOTA;
   }
   endShape();
}