> front:=x->-sqrt(1-x^2); > rear:=x->sqrt(1-x^2); > left:=-1; right:=1; > n:=21;m:=9; > top:=(x,y)->(sin(x*Pi)+1)/2; > bottom:=(x,y)->-sqrt(1-x^2-y^2); > xstep:=i->left+i*(right-left)/n; > ystep:=(i,j)->front(xstep(i))+j*(rear(xstep(i))-front(xstep(i)))/m; > Top:=[seq([seq([xstep(i), evalf(ystep(i,j)), evalf(top(xstep(i),ystep(i,j)))],j=0..m)],i=0..n)]: > Bottom:=[seq([seq([xstep(i), evalf(ystep(i,j)), evalf(bottom(xstep(i),ystep(i,j)))],j=0..m)],i=0..n)]: > Front:=[seq([[xstep(i), evalf(ystep(i,0)), evalf(bottom(xstep(i),ystep(i,0)))],[xstep(i), evalf(ystep(i,0)), evalf(top(xstep(i),ystep(i,0)))]],i=0..n)]: > Rear:=[seq([[xstep(i), evalf(ystep(i,m)), evalf(bottom(xstep(i),ystep(i,m)))],[xstep(i), evalf(ystep(i,m)), evalf(top(xstep(i),ystep(i,m)))]],i=0..n)]: > Left:=[[seq([xstep(0), evalf(ystep(0,j)), evalf(bottom(xstep(0),ystep(0,j)))],j=0..m)],[seq([xstep(0), evalf(ystep(0,j)), evalf(top(xstep(0),ystep(0,j)))],j=0..m)]]: > Right:=[[seq([xstep(n), evalf(ystep(n,j)), evalf(bottom(xstep(n),ystep(n,j)))],j=0..m)],[seq([xstep(n), evalf(ystep(n,j)), evalf(top(xstep(n),ystep(n,j)))],j=0..m)]]: > PLOT3D(MESH(Top),MESH(Bottom),MESH(Front),MESH(Rear),MESH(Left),MESH(Right)); >