/** 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 ); }