There are four kinds of output: svg
, threejs
, matrix
and text
. An experimental x3d
output is also available. The config
dictionary in the update
function should have its type
set equal to one of these string values.
Multiple outputs are available by including a configuration dictionary containing a multipleOutputs
entry as the third argument of the MathCell()
command. The value for this key is then an array of arbitrary numerical values indicating the layout of the outputs. The data for the evaluate()
function should then be an array of the usual data arrays. The configuration supplied to this function can either be a single dictionary for identical formatting of all outputs or an array of individual dictionaries.
Unless otherwise specified input data is an array of arrays of data points, i.e. a three-dimensional array. Both two- and three-dimensional outputs automatically omit nonnumerical data points. This allows the graphic to appear at least in part, but be aware that this occurs.
Colors are specified using standard HTML color code strings.
An svg
output displays a two-dimensional plot of the input data with the options and default values
xMin | calculated |
xMax | calculated |
yMin | calculated |
yMax | calculated |
axes | true
|
axesColor | black |
axesLabels | none |
backgroundColor | white |
equalAspect | false
|
equalLimits | false
|
includeOrigin | false
|
includeVerticals | false
|
ticks | automatic |
axesLabels
is an array of two strings. ticks
can be set to an array with two numbers determining distances between ticks, a value of 'auto' for either axis in this array or simply the string 'auto', as well as 'none' or false
to disable ticks.
A threejs
output displays a three-dimensional plot of the input data with the options and default values
xMin | calculated |
xMax | calculated |
yMin | calculated |
yMax | calculated |
zMin | calculated |
zMax | calculated |
animate | false
|
animateOnInteraction | false
|
aspectRatio | [1,1,1] |
axes | false
|
axesLabels | ['x','y','z'] |
cameraFar | 1000 |
cameraNear | .1 |
clearColor | white |
clippingPlane | none |
decimals | 2 |
equalAspect | false
|
frame | true
|
viewpoint | automatic |
axesLabels
can be disabled independent of frame
with a setting of false
. clippingPlane
is a dictionary consisting of a three-dimensional normal vector
and a distance
from the origin. viewpoint
is a vector with respect to the center of the visible scene, not absolute world coordinates; the current viewpoint is automatically preserved between renderings upon manipulation of inputs.
lights
can be specified as an array of dictionaries with type
either 'ambient' or 'directional'. Both can take an HTML color
and float intensity
. A directional light can also have a position
as an array of three coordiantes, and parent
object of either 'camera' or 'scene'.
Additional options specific to individual objects:
material | phong |
renderOrder | 0 |
singleSide | false
|
Objects are drawn from numerically lowest renderOrder
to highest.
material
can take the additional values 'normal' or 'standard'. Individual materials have the additional options and default values
phong | shininess | 20 |
standard | metalness | .5 |
roughness | .5 |
See the animations page for those two options, as well as how to include functions that are not part of standard JavaScript.
A matrix
output displays the contents of a two-dimensional array in matrix form. You may need to adjust the width and height of the MathCell to show the entire array properly.
A text
output displays the result of a calculation in raw form. The data for this output can be a number, a string or an array as desired. The output has one option and default
center | false
|
An x3d
output displays a three-dimensional plot of the input data with the options and default values
xMin | calculated |
xMax | calculated |
yMin | calculated |
yMax | calculated |
zMin | calculated |
zMax | calculated |
frame | true
|
saveAsXML | false
|
viewer | x3dom |
Setting saveAsXML
to true
triggers a download to file. Available viewers are x3dom and x_ite, but threejs
is a superior choice at this time. This output looks forward to future three-dimensional rendering standards.