#### Maxima 3d Plotting

     - Function: plot3d (expr, xrange, yrange,..., options,...)
     - Function: plot3d ([expr1,expr2,expr3], xrange, yrange,..., options,...)

When viewed with the netmath plotting routines, you can rotate the object by dragging with the right mouse button depressed.

- plot3d(2^(-u^2+v^2),[u,-2,2],[v,-2,2]); would plot z = 2^(-u^2+v^2) with u and v varying in [-2,2] and [-2,2] respectively, and with u on the x axis, and v on the y axis.
- a moebius band uses the second pattern of arguments plot3d([cos(x)*(3+y*cos(x/2)), sin(x)*(3+y*cos(x/2)), y*sin(x/2)], [x,-%pi,%pi],[y,-1,1],['grid,40,15]);
  parametrized by the 3 expressions given as the first argument to plot3d. An additional optional argument [grid,50,15] gives the grid number of rectangles in the x direction and y direction.
- A Riemann surface: Real part of z^1/3 plot3d(r^.33*cos(th/3),[r,0,1],[th,0,6*%pi], ['grid,12,80], ['transform_xy,polar_to_xy],['view_direction,1,1,1.4], ['colour_z,true]); Here the View_direction indicates the direction from which we take a projection. We actually do this from infinitely far away, but parallel to the line from view_direction to the origin. This is currently only used in 'ps' plot_format, since the other viewers allow interactive rotating of the object.
- a Klein bottle: plot3d([5*cos(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3.0) - 10.0, -5*sin(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3.0), 5*(-sin(x/2)*cos(y)+cos(x/2)*sin(2*y))], [x,-%pi,%pi],[y,-%pi,%pi],['grid,40,40]);
- a torus plot3d([cos(y)*(10.0+6*cos(x)), sin(y)*(10.0+6*cos(x)), -6*sin(x)], [x,0,2*%pi],[y,0,2*%pi], ['grid,20,20]);