I rewrote your Sketch a bit
I think one issue was that you had float px1 = sin(angle/np)*r; here.
I think this should be float px1 = cos(angle)*r; (without “/np”)
I also set angle to 0 in draw()
Chrisir
// TUBULAR FORM USING REFORMED ARRAYS ****** NIGEL S WOOLARD
final int r = 100;
final int r2 = 200;
final int np = 90;
final int cl = 100;
float angle=0; // radians(360/np);
final float anglestep = radians(360/np); // ALSO TRIED WITH PI VALUES
float[]PX1 = new float[np];
float[]PY1 = new float[np];
float[]PZ1 = new float[np];
float[]PX2 = new float[np];
float[]PY2 = new float[np];
float[]PZ2 = new float[np];
void setup() {
size(600, 600, P3D);
}
void draw() {
BACKGROUND();
angle=0;
CREATETUBE();
DRAWTUBE();
}
//--------------------------------------------------------------
void CREATETUBE() {
for (int i=0; i<np; i++) {
PX1[i] = cos(angle)*r;
PY1[i] = sin(angle)*r;
PZ1[i] = 0;
PX2[i] = cos(angle)*r2;
PY2[i] = sin(angle)*r2;
PZ2[i] = cl;
angle += anglestep;
}
}
//****************************************************************************
void DRAWTUBE() {
translate(300, 300, 0);
beginShape();
for (int i=0; i<np; i++) {
stroke(#FF0000);
vertex (PX1[i], PY1[i], PZ1[i]);
stroke(#FFEA00);
vertex (PX2[i], PY2[i], PZ2[i]);
}
endShape();
}
//*****************************************************************************
void BACKGROUND() {
fill(#FF8000);
}
//