> front:=x->-1; > rear:=x->1; > left:=-1; right:=1; > n:=21;m:=9; > top:=(x,y)->1; > bottom:=(x,y)->-1; > 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)); > #left_normal = [-1,0,0] > #right_normal = [1, 0,0] > #front_normal = [front_x,-1,0] > #rear_normal = [-rear_x, 1, 0] > #top_normal = [-top_x, -top_y, 1] > #bottom_normal = [bottom_x, bottom_y, -1] > # notation top_x is partial top/partial x = diff(top(x,y),x)