Issue trying to draw a cylinder

Hello,

I am trying to draw a shape, like a cylinder, but the output is something like this:

As you see, the last point is not matching the first point and I can’t figure out what I am doing wrong.
Here is the code for this:

int rows = 12;
int cols = 7;

void setup() 
{
  size(1200, 800, P3D);

}

void draw()
{
  background(0);
  
  beginCamera();
  camera();
  rotateX(87);
  endCamera();
  
  
  lights();
  
  float angle = 0;
  
  stroke(255);
  fill(255, 0, 0);
  
  translate(width/2, height/2, 0.0);
  
  strokeWeight(2);
  stroke(0);
  for(int i = 0; i < rows - 1; i++)
  {
    beginShape(TRIANGLE_STRIP);
    for(int j = 0; j < cols; j++)
    {
      angle += TWO_PI/cols;
      vertex(j * 50 * sin(angle), i * 50, 50 *  cos(angle));
      vertex(j * 50 * sin(angle), (i + 1) * 50, 50 *  cos(angle));
      
      println("V1 -> X: " + j * 50 * sin(angle) + " Y: " + i *  50 + " Z: " + 50 *  cos(angle));
      println("V2 -> X: " + j * 50 * sin(angle) + " Y: " + (i + 1) *  50 + " Z: " + 50 *  cos(angle));
     }
    endShape();
    
  
  }
}

Hope you can help me solve this problem.
Thank you! :smiley:

1 Like

Hello @alex119,

Give this a try:

    beginShape(TRIANGLE_STRIP);
    angle = 0;
    for (int j = 0; j <= cols; j++)
      {
      angle += TWO_PI/cols;
      vertex(5*50*sin(angle), i*50, 50*cos(angle));
      vertex(5*50 * sin(angle), (i + 1)*50, 50*cos(angle));
      }
    endShape()

Scrutinize changes.

I did a very quick exploration… may need more work.

:)

1 Like

Wow, I don’t know why I used that “j” there.
Thank you very much!

1 Like