/**
3D Surface from rotating a square function
by guru
*/
void setup() {
size(300,300,P3D );
frameRate(25);
}
float a =0;
void draw() {
a+= 0.1;
background(0);
lights();
translate( width/2, height/2 );
rotateY(a);
rotateX(a/2);
fill(255,0,0);
noStroke();
beginShape(QUAD_STRIP);
for( int j =-60; j < 60; j++ ) {
for( int i =0; i < 360; i++ ) {
PVector v1 = func(i,j);
PVector v2 = func(i, j+1 );
vertex( v1.x,v1.y, v1.z);
vertex( v2.x,v2.y, v2.z);
}
}
endShape();
}
PVector func( int i, int j ) {
float y = 5 + sq(float(j)/10);
float x = cos( radians(i)) * y;
float z = sin( radians(i)) * y;
return new PVector( x, j, z );
}