Triangle Strip

Triangle Strip by Ira Greenberg.

Generate a closed ring using the vertex() function and beginShape(TRIANGLE_STRIP) mode. The outsideRadius and insideRadius variables control ring’s radii respectively.


int x;
int y;
float outsideRadius = 150;
float insideRadius = 100;

void setup() {
  size(640, 360);
  background(204);
  x = width/2;
  y = height/2;
}

void draw() {
  background(204);
  
  int numPoints = int(map(mouseX, 0, width, 6, 60));
  float angle = 0;
  float angleStep = 180.0/numPoints;
    
  beginShape(TRIANGLE_STRIP); 
  for (int i = 0; i <= numPoints; i++) {
    float px = x + cos(radians(angle)) * outsideRadius;
    float py = y + sin(radians(angle)) * outsideRadius;
    angle += angleStep;
    vertex(px, py);
    px = x + cos(radians(angle)) * insideRadius;
    py = y + sin(radians(angle)) * insideRadius;
    vertex(px, py); 
    angle += angleStep;
  }
  endShape();
}

Functions Used

size()

Defines the dimension of the display window width and height in units of pixels

Learn More
vertex()

All shapes are constructed by connecting a series of vertices

Learn More
sin()

Calculates the sine of an angle

Learn More
beginShape()

Using the beginShape() and endShape() functions allow creating more complex forms

Learn More
int

Datatype for integers, numbers without a decimal point

Learn More
setup()

The setup() function is run once, when the program starts

Learn More
map()

Re-maps a number from one range to another

Learn More
cos()

Calculates the cosine of an angle

Learn More
draw()

Called directly after setup(), the draw() function continuously executes the lines of code contained inside its block until the program is stopped or noLoop() is called

Learn More
radians()

Converts a degree measurement to its corresponding value in radians

Learn More
endShape()

The endShape() function is the companion to beginShape() and may only be called after beginShape()

Learn More
background()

The background() function sets the color used for the background of the Processing window

Learn More