NAME

LiveGraphicsRectangularPlot3D.pl - provide an interactive 3D rectangular plot.

DESCRIPTION

This macro provides two methods for creating an interactive plot of a function of two variables z = f(x, y) in rectangular (Cartesian) coordinates via the LiveGraphics3D JavaScript applet. The routine "RectangularPlot3DRectangularDomain" takes a MathObject Formula of two variables defined over a rectangular domain and some plot options as input and returns a string of plot data that can be displayed using the Live3Ddata routine of the LiveGraphics3D.pl macro. The routine "RectangularPlot3DAnnularDomain" works similarly for a function z = f(x, y) over an annular domain specified in polar coordinates by rmin < r < rmax and tmin < theta < tmax (polar coordinates are converted to rectangular for evaluation of the function).

METHODS

RectangularPlot3DRectangularDomain

Usage: RectangularPlot3DRectangularDomain(%options)

The available options are as follows.

function => $f

$f is a MathObject Formula. For example, in the setup section define

Context()->variables->are(x => 'Real', y => 'Real');
$a = random(1, 3);
$f = Formula("$a * x^2 - 2 * y");    # Use double quotes!

before calling RectangularPlot3DRectangularDomain.

xvar => 'x'

First independent variable name, default 'x'. This must correspond to the first variable used in the function.

yvar => 'y'

Second independent variable name, default 'y'. This must correspond to the second variable used in the function.

xmin => -3

Lower bound for the domain of the first independent variable.

xmax => 3

Upper bound for the domain of the first independent variable.

ymin => -3

Lower bound for the domain of the second independent variable.

ymax => 3

Upper bound for the domain of the second independent variable.

xsamples => 20

The number of sample values for the first independent variable in the interval from xmin to xmax to use.

ysamples => 20

The number of sample values for the second independent variable in the interval from ymin to ymax to use.

axesframed => 1

If set to 1 then the framed axes are displayed. If set to 0, the the framed axes are not shown. This is 1 by default.

xaxislabel => 'x'

Label for the axis corresponding to the first independent variable.

yaxislabel => 'y'

Label for the axis corresponding to the second independent variable.

zaxislabel => 'z'

Label for the axis corresponding to the dependent variable.

outputtype => 1

This determines what is contained in the string that the method returns. The values of 1 through 4 are accepted, and have the following meaning.

  1. Return a string of only polygons (or edge mesh).

  2. Return a string of only plot options.

  3. Return a string of polygons (or edge mesh) and plot options.

  4. Return the complete plot to be passed directly to the Live3DData method.

RectangularPlot3DAnnularDomain

Usage: RectangularPlot3DAnnularDomain(%options)

The available options are as follows.

function => $f

$f is a MathObject Formula. For example, in the setup section define

Context()->variables->are(x => 'Real', y => 'Real');
$a = random(1, 3);
$f = Formula("$a * e^(-x^2 - y^2)");    # Use double quotes!

before calling RectangularPlot3DRectangularDomain.

xvar => 'x'

First independent variable name, default 'x'. This must correspond to the first variable used in the function.

yvar => 'y'

Second independent variable name, default 'y'. This must correspond to the second variable used in the function.

rmin => -3

Lower bound for the domain of radial coordinate.

rmax => 3

Upper bound for the domain of radial coordinate.

tmin => -3

Lower bound for the domain of angular coordinate.

tmax => 3

Upper bound for the domain of angular coordinate.

rsamples => 20

The number of radial values in the interval from rmin to rmax to use.

tsamples => 20

The number of angular values in the interval from tmin to tmax to use.

axesframed => 1

If set to 1 then the frames axes are displayed. If set to 0, the the framed axes are not shown. This is 1 by default.

xaxislabel => 'x'

Label for the axis corresponding to the first independent variable.

yaxislabel => 'y'

Label for the axis corresponding to the second independent variable.

zaxislabel => 'z'

Label for the axis corresponding to the dependent variable.

outputtype => 1

This determines what is contained in the string that the method returns. The values of 1 through 4 are accepted, and have the following meaning.

  1. Return a string of only polygons (or edge mesh).

  2. Return a string of only plot options.

  3. Return a string of polygons (or edge mesh) and plot options.

  4. Return the complete plot to be passed directly to the Live3DData method.