Element ParametricSurface3D
JXG.GeometryElement
↳ JXG.Curve
↳ Curve
↳ ParametricSurface3D
A 3D parametric surface visualizes a map (u, v) → [X(u, v), Y(u, v), Z(u, v)].
Defined in: surface3d.js.
Extends
Curve.
| Constructor Attributes | Constructor Name and Description |
|---|---|
|
A 3D parametric surface is defined by a function
F: R2 → R3.
|
| Field Attributes | Field Name and Description |
|---|---|
|
HSV color range for colormap.
|
|
|
Attributes for the polyhedron3d in case `style='triangle'` or `style='rectangle'`.
|
|
|
Number of intervals the mesh is divided into in direction of parameter u.
|
|
|
Number of intervals the mesh is divided into in direction of parameter v.
|
|
|
Description of how the mesh is visualized.
|
- Methods borrowed from class JXG.Curve:
- addTransform, allocatePoints, Ft, generateTerm, getLabelPosition, getTransformationSource, hasPoint, interpolationFunctionFromArray, maxX, minX, moveTo, notifyParents, update, updateCurve, updateDataArray, updateRenderer, updateTransform, X, Y, Z
- Methods borrowed from class JXG.GeometryElement:
- _set, addChild, addDescendants, addParents, addParentsFromJCFunctions, addRotation, addTicks, animate, bounds, clearTrace, cloneToBackground, countChildren, createGradient, createLabel, draggable, eval, evalVisProp, formatNumberLocale, fullUpdate, generatePolynomial, getAttribute, getAttributes, getLabelAnchor, getName, getParents, getProperty, getSnapSizes, getTextAnchor, getType, handleSnapToGrid, hide, hideElement, noHighlight, normalize, prepareUpdate, remove, removeAllTicks, removeChild, removeDescendants, removeTicks, resolveShortcuts, setArrow, setAttribute, setDash, setDisplayRendNode, setLabel, setLabelText, setName, setParents, setPosition, setPositionDirectly, setProperty, show, showElement, snapToPoints, toTopOfLayer, updateVisibility, useLocale
- Events borrowed from class JXG.GeometryElement:
- attribute, attribute:key, down, drag, keydrag, mousedown, mousedrag, mousemove, mouseout, mouseover, mouseup, move, out, over, pendown, pendrag, penup, touchdown, touchdrag, touchup, up
-
This element has no direct constructor. To create an instance of this element you have to call JXG.Board#create
with type "parametricsurface3d".
- Possible parent array combinations are:
-
{Function} FX
{Function} FY
{Function} FZ
{Array|Function} rangeU
{Array|Function} rangeV
- FX(u,v), FY(u,v), FZ(u,v) are functions returning a number, rangeU is the array containing lower and upper bound for the range of parameter u, rangeV is the array containing lower and upper bound for the range of parameter v. rangeU and rangeV may also be functions returning an array of length two.
-
{Function} F
{Array|Function} rangeU
{Array|Function} rangeV
- Alternatively: F[X,Y,Z](u,v) a function returning an array [x,y,z] of numbers, rangeU and rangeV as above.
- Throws:
- {Exception}
- If the element cannot be constructed with the given parent objects an exception is thrown.
- Examples:
var view = board.create('view3d',
[[-6, -3], [8, 8],
[[-5, 5], [-5, 5], [-5, 5]]]);
// Sphere
var c = view.create('parametricsurface3d', [
(u, v) => 2 * Math.sin(u) * Math.cos(v),
(u, v) => 2 * Math.sin(u) * Math.sin(v),
(u, v) => 2 * Math.cos(u),
[0, 2 * Math.PI],
[0, Math.PI]
], {
strokeColor: '#ff0000',
stepsU: 30,
stepsV: 30
});
Defined in: options3d.js.
- Default Value:
-
{ min: [-5, 190], max: [5, 0], s: 0.9, v: 0.9 }
- strokewidth: 0
- fillColorArray: ['white', JXG.palette.blue]
Defined in: options3d.js.
var F = (x, y) => Math.cos(x * y / 4);
var view = board.create('view3d', [
[-6, -3], [8, 8],
[[-5, 5], [-5, 5], [-5, 5]]
], {
xPlaneRear: {visible: false},
yPlaneRear: {visible: false},
depthOrder: {enabled: true}
});
// 3D surface
var c = view.create('functiongraph3d', [F, [-5, 5], [-5, 5]], {
strokeWidth: 1, // ignored
stepsU: 10,
stepsV: 10,
tiling: 'triangle',
polyhedron: {
strokeWidth: 0, // has priority
fillOpacity: 0.9,
shader: {
enabled: true,
hue: 20,
saturation: 90,
minlightness: 50,
maxLightness: 80
}
}
});
var view = board.create('view3d',
[
[-6, -3], [8, 8],
[[-5, 5], [-5, 5], [-5, 5]]
], {
xPlaneRear: {visible: false},
yPlaneRear: {visible: false}
});
// Function F to be plotted
var F = (x, y) => y - x;
// 3D surface
var c = view.create('functiongraph3d', [F, [-5, 5], [-5, 5]], {
stepsU: 9,
stepsV: 9,
tiling: 'rectangle'
});
- See:
- ParametricSurface3D#style
- Default Value:
-
{strokewidth: 0, fillColorArray: ['white', 'black'] }
Defined in: options3d.js.
Defined in: options3d.js.
In case of `tiling:'triangle'` or `tiling:'rectangle'` a polyhedron3d element is displayed, using the attributes `stepsU` and `stepsV`. In case of `triangle`, equilateral triangles are created if stepsV==0.
All other attributes of the polyhedron3d have to be set inside of `polyhedron`, including `strokeWidth` and `strokeColor`. The wireframe settings for these attributes are ignored.
At the time being (v1.13+), this attribute is immutable.
Defined in: options3d.js.
var view = board.create('view3d',
[
[-6, -3], [8, 8],
[[-5, 5], [-5, 5], [-5, 5]]
],
{
xPlaneRear: {visible: false},
yPlaneRear: {visible: false},
});
// Function F to be plotted
var F = (x, y) => Math.cos(x * y / 4);
// 3D surface
var c = view.create('functiongraph3d', [
F,
[-5, 5],
[-5, 5],
], {
strokeWidth: 0.5,
stepsU: 70,
stepsV: 70,
tiling:'wireframe'
});
var view = board.create('view3d',
[
[-6, -3], [8, 8],
[[-5, 5], [-5, 5], [-5, 5]]
],
{
xPlaneRear: {visible: false},
yPlaneRear: {visible: false},
});
// Function F to be plotted
var F = (x, y) => Math.cos(x * y / 4);
// 3D surface
var c = view.create('functiongraph3d', [
F,
[-5, 5],
[-5, 5],
], {
stepsU: 15,
stepsV: 15,
tiling:'triangle'
});
var view = board.create('view3d',
[
[-6, -3], [8, 8],
[[-5, 5], [-5, 5], [-5, 5]]
],
{
xPlaneRear: {visible: false},
yPlaneRear: {visible: false},
});
// Function F to be plotted
var F = (x, y) => Math.cos(x * y / 4);
// 3D surface
var c = view.create('functiongraph3d', [
F,
[-5, 5],
[-5, 5],
], {
stepsU: 15,
stepsV: 15,
tiling: 'rectangle'
});
- Default Value:
- 'wireframe'
- Attributes borrowed from class Curve:
- curveType, doAdvancedPlot, doAdvancedPlotOld, firstArrow, handDrawing, label, lastArrow, numberPointsHigh, numberPointsLow, plotVersion, RDPsmoothing, RDPthreshold, recursionDepthHigh, recursionDepthLow
- Attributes borrowed from class JXG.Curve:
- lineCap
- Attributes borrowed from class JXG.GeometryElement:
- aria, cssClass, dash, dashScale, draft, dragToTopOfLayer, element3D, fillColor, fillOpacity, fixed, frozen, gradient, gradientAngle, gradientCX, gradientCY, gradientEndOffset, gradientFR, gradientFX, gradientFY, gradientR, gradientSecondColor, gradientSecondOpacity, gradientStartOffset, highlight, highlightCssClass, highlightFillColor, highlightFillOpacity, highlightStrokeColor, highlightStrokeOpacity, highlightStrokeWidth, ignoreForLabelAutoposition, isLabel, layer, needsRegularUpdate, nonnegativeOnly, precision, priv, rotatable, scalable, shadow, snapToGrid, strokeColor, strokeOpacity, strokeWidth, tabindex, trace, traceAttributes, transitionDuration, transitionProperties, visible, withLabel
- Fields borrowed from class JXG.Curve:
- dataX, dataY, numberPoints, qdt, ticks
- Fields borrowed from class JXG.GeometryElement:
- _org_type, _pos, ancestors, baseElement, board, childElements, descendants, dump, elementClass, elType, hasLabel, highlighted, id, inherits, isDraggable, isReal, lastDragTime, methodMap, mouseover, name, needsUpdate, notExistingParents, numTraces, parents, quadraticform, rendNode, stdform, subs, symbolic, traces, transformations, type, visProp, visPropCalc
- Methods borrowed from class JXG.Curve:
- addTransform, allocatePoints, Ft, generateTerm, getLabelPosition, getTransformationSource, hasPoint, interpolationFunctionFromArray, maxX, minX, moveTo, notifyParents, update, updateCurve, updateDataArray, updateRenderer, updateTransform, X, Y, Z
- Methods borrowed from class JXG.GeometryElement:
- _set, addChild, addDescendants, addParents, addParentsFromJCFunctions, addRotation, addTicks, animate, bounds, clearTrace, cloneToBackground, countChildren, createGradient, createLabel, draggable, eval, evalVisProp, formatNumberLocale, fullUpdate, generatePolynomial, getAttribute, getAttributes, getLabelAnchor, getName, getParents, getProperty, getSnapSizes, getTextAnchor, getType, handleSnapToGrid, hide, hideElement, noHighlight, normalize, prepareUpdate, remove, removeAllTicks, removeChild, removeDescendants, removeTicks, resolveShortcuts, setArrow, setAttribute, setDash, setDisplayRendNode, setLabel, setLabelText, setName, setParents, setPosition, setPositionDirectly, setProperty, show, showElement, snapToPoints, toTopOfLayer, updateVisibility, useLocale