API Docs for: 0.99.4
Show:

PSEUDO

Extends JXG.Curve
Module: JXG

This element is used to provide a constructor for curve, which is just a wrapper for element Curve. A curve is a mapping from R to R^2. t mapsto (x(t),y(t)). The graph is drawn for t in the interval [a,b]. The following types of curves can be plotted:

• parametric curves: t mapsto (x(t),y(t)), where x() and y() are univariate functions.
• polar curves: curves commonly written with polar equations like spirals and cardioids.
• data plots: plot line segments through a given list of coordinates.

Constructor

`Curve`

(
• `x,y,a_,b_`
• `x,y`
• `r,offset_,a_,b_`
)

Parameters:

• `x,y,a_,b_` Function,number_function,number_function,number_function,number

Parent elements for Parametric Curves.

x describes the x-coordinate of the curve. It may be a function term in one variable, e.g. x(t). In case of x being of type number, x(t) is set to a constant function. In case x being of type function. This function evaluates at the values of the array.

y describes the y-coordinate of the curve. In case of a number, y(t) is set to the constant function returning this number. Further parameters are an optional number or function for the left interval border a, and an optional number or function for the right interval border b. Default values are a=-10 and b=10.

• `x,y` Array_array,function,number

Parent elements for Data Plots.

x and y are arrays contining the x and y coordinates of the data points which are connected by line segments. The individual entries of x and y may also be functions. In case of x being an array the curve type is data plot, regardless of the second parameter and if additionally the second parameter y is a function term the data plot evaluates.

• `r,offset_,a_,b_` Function_array,function,number_function,number_function,number

Parent elements for Polar Curves.

The first parameter is a function term r(phi) describing the polar curve.

The second parameter is the offset of the curve. It has to be an array containing numbers or functions describing the offset. Default value is the origin [0,0].

Further parameters are an optional number or function for the left interval border a, and an optional number or function for the right interval border b.

Default values are a=-10 and b=10.

Example:

``````// Parametric curve
// Create a curve of the form (t-sin(t), 1-cos(t), i.e.
// the cycloid curve.
var graph = board.create('curve',
[function(t){ return t-Math.sin(t);},
function(t){ return 1-Math.cos(t);},
0, 2*Math.PI]
);
``````
``````// Data plots
// Connect a set of points given by coordinates with dashed line segments.
// The x- and y-coordinates of the points are given in two separate
// arrays.
var x = [0,1,2,3,4,5,6,7,8,9];
var y = [9.2,1.3,7.2,-1.2,4.0,5.3,0.2,6.5,1.1,0.0];
var graph = board.create('curve', [x,y], {dash:2});
``````
``````// Polar plot
// Create a curve with the equation r(phi)= a*(1+phi), i.e.
// a cardioid.
var a = board.create('slider',[[0,2],[2,2],[0,1,2]]);
var graph = board.create('curve',
[function(phi){ return a.Value()*(1-Math.cos(phi));},
[1,0],
0, 2*Math.PI]
);
``````
`````` // Draggable Bezier curve
var col, p, c;
col = 'blue';
p = [];
p.push(board.create('point',[-2, -1 ], {size: 5, strokeColor:col, fillColor:col}));
p.push(board.create('point',[1, 2.5 ], {size: 5, strokeColor:col, fillColor:col}));
p.push(board.create('point',[-1, -2.5 ], {size: 5, strokeColor:col, fillColor:col}));
p.push(board.create('point',[2, -2], {size: 5, strokeColor:col, fillColor:col}));
c = board.create('curve', JXG.Math.Numerics.bezier(p),
{strokeColor:'red', name:"curve", strokeWidth:5, fixed: false}); // Draggable curve
``````

Methods

`_borderCase`

(
• `a`
• `b`
• `c`
• `ta`
• `tb`
• `tc`
• `depth`
)
JXG.Boolean private

Investigate a function term at the bounds of intervals where the function is not defined, e.g. log(x) at x = 0.

c is between a and b

Parameters:

• `a` Array

Screen coordinates of the left interval bound

• `b` Array

Screen coordinates of the right interval bound

• `c` Array

Screen coordinates of the bisection point at (ta + tb) / 2

• `ta` Number

Parameter which evaluates to a, i.e. [1, X(ta), Y(ta)] = a in screen coordinates

• `tb` Number

Parameter which evaluates to b, i.e. [1, X(tb), Y(tb)] = b in screen coordinates

• `tc` Number

(ta + tb) / 2 = tc. Parameter which evaluates to b, i.e. [1, X(tc), Y(tc)] = c in screen coordinates

• `depth` Number

Actual recursion depth. The recursion stops if depth is equal to 0.

Returns:

JXG.Boolean:

true if the point is inserted and the recursion should stop, false otherwise.

`_insertPoint`

(
• `pnt`
)
private

Add a point to the curve plot. If the new point is too close to the previously inserted point, it is skipped. Used in undefined.

Parameters:

• `pnt` JXG.Coords

Coords to add to the list of points

`_isOutside`

(
• `a`
• `ta`
• `b`
• `tb`
)
private

Determines if a segment is outside of the visible canvas (plus a certain border).

Parameters:

• `a` Number

First point of the segement

• `ta` Number

Parameter of the curve for first point

• `b` Number

Second point of the segment

• `tb` Number

Parameter of the curve for second point

Returns:

Boolean:

True if segment is visible.

`_isUndefined`

(
• `a`
• `ta`
• `b`
• `tb`
)
private

Test if the function is undefined on an interval: If the interval borders a and b are undefined, 20 random values are tested if they are undefined, too. Only if all values are undefined, we declare the function to be undefined in this interval.

Parameters:

• `a` Array

Screen coordinates of the left interval bound

• `ta` Number

Parameter which evaluates to a, i.e. [1, X(ta), Y(ta)] = a in screen coordinates

• `b` Array

Screen coordinates of the right interval bound

• `tb` Number

Parameter which evaluates to b, i.e. [1, X(tb), Y(tb)] = b in screen coordinates

`_plotRecursive`

(
• `a`
• `ta`
• `b`
• `tb`
• `depth`
• `delta`
)
private chainable

Recursive interval bisection algorithm for curve plotting. Used in undefined.

Parameters:

• `a` Array

Screen coordinates of the left interval bound

• `ta` Number

Parameter which evaluates to a, i.e. [1, X(ta), Y(ta)] = a in screen coordinates

• `b` Array

Screen coordinates of the right interval bound

• `tb` Number

Parameter which evaluates to b, i.e. [1, X(tb), Y(tb)] = b in screen coordinates

• `depth` Number

Actual recursion depth. The recursion stops if depth is equal to 0.

• `delta` Number

If the distance of the bisection point at (ta + tb) / 2 from the point (a + b) / 2 is less then delta, the segment [a,b] is regarded as straight line.

Returns:

JXG.Curve:

Reference to the curve object.

`_set`

(
• `property`
• `value`
)
private chainable
Sets the value of property property to value.

Parameters:

• `property` String
The property's name.
• `value` Object
The new value

`_triangleDists`

(
• `a`
• `b`
• `c`
)
private

Compute distances in screen coordinates between the points ab, ac, cb, and cd, where d = (a + b)/2. cd is used for the smoothness test, ab, ac, cb are used to detect jumps, cusps and poles.

Parameters:

• `a` Array

Screen coordinates of the left interval bound

• `b` Array

Screen coordinates of the right interval bound

• `c` Array

Screen coordinates of the bisection point at (ta + tb) / 2

Returns:

Array:

array of distances in screen coordinates between: ab, ac, cb, and cd.

`addChild`

(
• `obj`
)
chainable
Add an element as a child to the current element. Can be used to model dependencies between geometry elements.

`addDescendants`

(
• `obj`
)
private chainable
Adds the given object to the descendants list of this object and all its child objects.

Parameters:

• `obj` JXG.GeometryElement
The element that is to be added to the descendants list.

`addParents`

(
• `parents`
)
JXG.Object chainable
Adds ids of elements to the array this.parents. This method needs to be called if some dependencies can not be detected automatically by JSXGraph. For example if a function graph is given by a function which referes to coordinates of a point, calling addParents() is necessary.

Parameters:

• `parents` Array
Array of elements or ids of elements. Alternatively, one can give a list of objects as parameters.

Returns:

JXG.Object: reference to the object itself.

Example:

``````// Movable function graph
var A = board.create('point', [1, 0], {name:'A'}),
B = board.create('point', [3, 1], {name:'B'}),
f = board.create('functiongraph', function(x) {
var ax = A.X(),
ay = A.Y(),
bx = B.X(),
by = B.Y(),
a = (by - ay) / ( (bx - ax) * (bx - ax) );
return a * (x - ax) * (x - ax) + ay;
}, {fixed: false});
``````

`addRotation`

(
• `angle`
)
chainable
Rotate texts or images by a given degree. Works only for texts where JXG.Text#display equal to "internal".

Parameters:

• `angle` Number
The degree of the rotation (90 means vertical text).

• JXG.GeometryElement#rotate

`addTransform`

(
• `transform`
)
chainable

Parameters:

• `transform`

Returns:

JXG.Curve:

Reference to the curve object.

`allocatePoints`

() private chainable

Allocate points in the Coords array this.points

`animate`

(
• `hash`
• `time`
• `[options]`
)
chainable
Animates properties for that object like stroke or fill color, opacity and maybe even more later.

Parameters:

• `hash` Object
Object containing properties with target values for the animation.
• `time` Number
Number of milliseconds to complete the animation.
• `[options]` Object optional
Optional settings for the animation:
• callback: A function that is called as soon as the animation is finished.

Returns:

JXG.GeometryElement: A reference to the object

`bounds`

()
Dimensions of the smallest rectangle enclosing the element.

Returns:

Array:

The coordinates of the enclosing rectangle in a format like the bounding box in {@link JXG.Board#setBoundingBox}.

`checkReal`

() private chainable

Check if at least one point on the curve is finite and real and sets the property `isReal`.

Returns:

JXG.Curve:

Reference to the curve object.

`clearTrace`

() chainable
Removes all objects generated by the trace function.

`cloneToBackground`

() chainable
Copy the element to background. This is used for tracing elements.

`countChildren`

() private
Counts the direct children of an object without counting labels.

Returns:

Number: Number of children

`createGradient`

() private chainable
Creates a gradient nodes in the renderer.

`createLabel`

() chainable
Creates a label element for this geometry element.

`dash`

(
• `d`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1703`

Set the dash type of an element

Parameters:

• `d` Number
Integer which determines the way of dashing an element's outline.

`draggable`

() private
Decides whether an element can be dragged. This is used in {{#crossLink "JXG.GeometryElement/setPositionDirectly:method"}}JXG.GeometryElement#setPositionDirectly{{/crossLink}} methods where all parent elements are checked if they may be dragged, too.

`fillColor`

(
• `fColor`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1657`

Set the fillColor of an element

Parameters:

• `fColor` String
String which determines the fill color of an object.

`generatePolynomial`

()
Array of strings containing the polynomials defining the element. Used for determining geometric loci the groebner way.

Returns:

Array:

An array containing polynomials describing the locus of the current object.

`generateTerm`

(
• `varname`
• `xterm`
• `yterm`
• `mi`
• `ma`
)
chainable

Converts the GEONExT syntax of the defining function term into JavaScript. New methods X() and Y() for the Curve object are generated, further new methods for minX() and maxX().

Parameters:

• `varname` String

Name of the parameter, e.g. 't' or 'x'

• `xterm`

[description]

• `yterm`

[description]

• `mi`

[description]

• `ma`

[description]

Returns:

JXG.Curve:

Reference to the curve object.

• JXG.Curve#JXG.GeonextParser.geonext2JS.

`getAttribute`

(
• `key`
)
Get the value of the property key.

Parameters:

• `key` String
The name of the property you are looking for

Returns:

The value of the property

`getAttributes`

()
Retrieve a copy of the current visProp.

`getLabelAnchor`

()
Returns the coords object where the label of the element shall be drawn. Differs in some cases from the values that getTextAnchor returns.

Returns:

JXG.Coords: JXG.Coords Place where the text shall be drawn.

`getName`

()
Returns the elements name, used in JessieCode.

`getParents`

()
List of the element ids resp. values used as parents in {{#crossLink "JXG.Board/create:method"}}JXG.Board#create{{/crossLink}}.

`getProperty`

() deprecated

Inherited from JXG.GeometryElement: `src/base/element.js:1237`

`getTextAnchor`

()
Returns the coords object where a text that is bound to the element shall be drawn. Differs in some cases from the values that getLabelAnchor returns.

Returns:

JXG.Coords: JXG.Coords Place where the text shall be drawn.

()

`handleSnapToGrid`

(
• `force`
)
chainable
Move an element to its nearest grid point. The function uses the coords object of the element as its actual position. If there is no coords object, nothing is done.

Parameters:

• `force` Boolean
force snapping independent from what the snaptogrid attribute says

Returns:

JXG.GeometryElement: Reference to this element

`hasPoint`

(
• `x`
• `y`
• `start`
)

Checks whether (x,y) is near the curve.

Parameters:

• `x` Number

Coordinate in x direction, screen coordinates.

• `y` Number

Coordinate in y direction, screen coordinates.

• `start` Number

Optional start index for search on data plots.

Returns:

Boolean:

True if (x,y) is near the curve, False otherwise.

`hideElement`

() chainable
Hide the element. It will still exist but not visible on the board.

`highlight`

(
• `[force=false]`
)
chainable
Highlights the element.

Parameters:

• `[force=false]` Boolean optional
Force the highlighting

`highlightFillColor`

(
• `fColor`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1673`

Set the highlightFillColor of an element

Parameters:

• `fColor` String
String which determines the fill color of an object when its highlighted.

`highlightStrokeColor`

(
• `sColor`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1611`

Set the highlightStrokeColor of an element

Parameters:

• `sColor` String
String which determines the stroke color of an object when its highlighted.

`interpolationFunctionFromArray`

(
• `which`
)
private

Generate the method curve.X() in case curve.dataX is an array and generate the method curve.Y() in case curve.dataY is an array.

Parameters:

• `which` String

Either 'X' or 'Y'

`isDistOK`

(
• `dx`
• `dy`
• `MAXX`
• `MAXY`
)
private

Compares the absolute value of dx with MAXX and the absolute value of dy with MAXY.

Returns:

Boolean:

true, if |dx| < MAXX and |dy| < MAXY.

() private

`isSegmentOutside`

(
• `x0`
• `y0`
• `x1`
• `y1`
)
private

Crude and cheap test if the segment defined by the two points (x0, y0) and (x1, y1) is outside the viewport of the board. All parameters have to be given in screen coordinates.

Returns:

Boolean:

true if the given segment is outside the visible area.

`labelColor`

(
• `lColor`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1688`

Set the labelColor of an element

Parameters:

• `lColor` String
String which determines the text color of an object's label.

`maxX`

()

Gives the default value of the right bound for the curve. May be overwritten in JXG.Curve#generateTerm.

Returns:

Number:

Right bound for the curve.

`minX`

()

Gives the default value of the left bound for the curve. May be overwritten in JXG.Curve#generateTerm.

Returns:

Number:

Left bound for the curve.

`noHighlight`

() chainable
Uses the "normal" properties of the element.

`normalize`

() private chainable
Normalize the element's standard form.

`notifyParents`

(
• `contentStr`
)
chainable

Finds dependencies in a given term and notifies the parents by adding the dependent object to the found objects child elements.

Parameters:

• `contentStr` String

String containing dependencies for the given object.

Returns:

JXG.Curve:

Reference to the curve object.

`prepareUpdate`

() private chainable
Notify all child elements for updates.

`remove`

() chainable
Removes the element from the construction. This only removes the SVG or VML node of the element and its label (if available) from the renderer, to remove the element completely you should use {{#crossLink "JXG.Board/removeObject:method"}}JXG.Board#removeObject{{/crossLink}}.

`removeChild`

(
• `obj`
)
chainable
Remove an element as a child from the current element.

`removeDescendants`

(
• `obj`
)
private chainable
Removes the given object from the descendants list of this object and all its child objects.

Parameters:

• `obj` JXG.GeometryElement
The element that is to be removed from the descendants list.

`resolveShortcuts`

(
• `properties`
)
Resolves property shortcuts like color and expands them, e.g. strokeColor and fillColor. Writes the expanded properties back to the given properties.

Parameters:

• `properties` Object

Returns:

Object: The given parameter with shortcuts expanded.

`setArrow`

(
• `firstArrow`
• `lastArrow`
)
chainable
Determines whether the element has arrows at start or end of the arc.

Parameters:

• `firstArrow` Boolean
True if there is an arrow at the start of the arc, false otherwise.
• `lastArrow` Boolean
True if there is an arrow at the end of the arc, false otherwise.

`setAttribute`

(
• `attributes`
)
chainable
Sets an arbitrary number of attributes.

Parameters:

• `attributes` Object
An object with attributes.

Example:

``````// Set property directly on creation of an element using the attributes object parameter
var board = JXG.JSXGraph.initBoard('jxgbox', {boundingbox: [-1, 5, 5, 1]};
var p = board.create('point', [2, 2], {visible: false});

// Now make this point visible and fixed:
p.setAttribute({
fixed: true,
visible: true
});``````

`setDash`

(
• `dash`
)
private chainable
Set the dash style of an object. See undefined for a list of available dash styles. You should use undefined instead of this method.

Parameters:

• `dash` Number
Indicates the new dash style

`setLabel`

(
• `str`
)
chainable
Sets a label and it's text If label doesn't exist, it creates one

`setLabelText`

(
• `str`
)
chainable
Updates the element's label text, strips all html.

`setName`

(
• `str`
)
chainable
Updates the element's label text and the element's attribute "name", strips all html.

`setParents`

(
• `parents`
)
JXG.Object chainable
Sets ids of elements to the array this.parents. First, this.parents is cleared. See undefined.

Parameters:

• `parents` Array
Array of elements or ids of elements. Alternatively, one can give a list of objects as parameters.

Returns:

JXG.Object: reference to the object itself.

`setPosition`

(
• `method`
• `coords`
)
chainable
Translates the object by (x, y). In case the element is defined by points, the defining points are translated, e.g. a circle constructed by a center point and a point on the circle line.

Parameters:

• `method` Number

The type of coordinates used here. Possible values are {@link JXG.COORDS_BY_USER} and {@link JXG.COORDS_BY_SCREEN}.

• `coords` Array

array of translation vector.

Returns:

JXG.GeometryElement:

Reference to the element object.

`setPositionDirectly`

(
• `method`
• `coords`
• `oldcoords`
)
chainable
Moves an by the difference of two coordinates.

Parameters:

• `method` Number

The type of coordinates used here. Possible values are {@link JXG.COORDS_BY_USER} and {@link JXG.COORDS_BY_SCREEN}.

• `coords` Array

coordinates in screen/user units

• `oldcoords` Array

previous coordinates in screen/user units

Returns:

JXG.GeometryElement:

this element

`setProperty`

() deprecated

Inherited from JXG.GeometryElement: `src/base/element.js:1030`

`shadow`

(
• `s`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1733`

Set the shadow of an element

Parameters:

• `s` Boolean
Boolean which determines whether the element has a shadow or not.

`showElement`

() chainable
Make the element visible.

`snapToGrid`

() chainable
Snaps the element to the grid. Only works for points, lines and circles. Points will snap to the grid as defined in their properties undefined and undefined. Lines and circles will snap their parent points to the grid, if they have undefined set to true.

Returns:

JXG.GeometryElement: Reference to the element.

`snapToPoints`

() chainable
Snaps the element to points. Only works for points. Points will snap to the next point as defined in their properties undefined and undefined. Lines and circles will snap their parent points to points.

Returns:

JXG.GeometryElement: Reference to the element.

`strokeColor`

(
• `sColor`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1626`

Set the strokeColor of an element

Parameters:

• `sColor` String
String which determines the stroke color of an object.

`strokeWidth`

(
• `width`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1641`

Set the strokeWidth of an element

Parameters:

• `width` Number
Integer which determines the stroke width of an outline.

`toJSON`

() private
EXPERIMENTAL. Generate JSON object code of visProp and other properties.

Returns:

JSON string containing element's properties.

`update`

() chainable

Computes for equidistant points on the x-axis the values of the function

Returns:

JXG.Curve:

Reference to the curve object.

`updateCurve`

() chainable

Computes the path of coordinates defining the curve. For this various methods are used, depending whether the curve is defined by a data array of by function terms. If the mousemove event triggers this update, we use only few points. Otherwise, e.g. on mouseup, many points are used.

Returns:

JXG.Curve:

Reference to the curve object.

`updateDataArray`

()

For dynamic dat aplots, `updateDataArray` can be used to compute new entries for the arrays `JXG.Curve#dataX` and `JXG.Curve#dataY`. It is used in JXG.Curve#updateCurve. Default is an empty method, can be overwritten by the user.

Example:

In this example the filled curve which shows the intersection of two polygons is plotted. The curve is defined by the coordinates in `dataX` and `dataY`.

``````var i,
board = JXG.JSXGraph.initBoard('box', {boundingbox: [-8,8,8,-8], axis: true}),
pts1 = [[-2, 3], [-4, -3], [2, 0], [4, 4]],
pts2 = [[-2, -3], [-4, 1], [0, 4], [5, 1]];

// Clipping polygon
var pol = board.create('polygon', pts1,
{hasInnerPoints: true,
borders: {names: ['', '', '', '']},
name:'Polygon1', withLabel: true, visible: true,
fillColor: 'yellow'});

// Polygon to be clipped
var pol2 = board.create('polygon', pts2,
{hasInnerPoints: false,
borders: {names: ['', '', '', '']},
name:'Polygon2', withLabel: true, visible: true
});

var curve = board.create('curve', [[],[]], {fillColor: 'blue', fillOpacity: 0.4});
curve.updateDataArray = function() {
var mat = JXG.Math.transpose(pol.intersect(pol2));

if (mat.length == 3) {
this.dataX = mat[1];
this.dataY = mat[2];
} else {
this.dataX = [];
this.dataY = [];
}

};

board.update();
``````

`updateParametricCurve`

(
• `mi`
• `ma`
)
chainable

Updates the data points of a parametric curve. This version is used if undefined is true.

Parameters:

• `mi` Number

Left bound of curve

• `ma` Number

Right bound of curve

Returns:

JXG.Curve:

Reference to the curve object.

`updateParametricCurveNaive`

(
• `mi`
• `ma`
• `len`
)
chainable

Updates the data points of a parametric curve using a fixed set of equidistant points. This version is used if undefined is false.

Parameters:

• `mi` Number

Left bound of curve

• `ma` Number

Right bound of curve

• `len` Number

Number of data points

Returns:

JXG.Curve:

Reference to the curve object.

`updateParametricCurveOld`

(
• `mi`
• `ma`
)
deprecated chainable

Updates the data points of a parametric curve. This version is used if undefined is true. Since 0.99 this algorithm is deprecated. It still can be used if undefined is true.

Parameters:

• `mi` Number

Left bound of curve

• `ma` Number

Right bound of curve

Returns:

JXG.Curve:

Reference to the curve object.

`updateRenderer`

() private chainable
Provide updateRenderer method.

`updateTransform`

(
• `p`
)

Applies the transformations of the curve to the given point p. Before using it, JXG.Curve#updateTransformMatrix has to be called.

JXG.Point:

The given point.

`updateTransformMatrix`

() private chainable

Update the transfomration matrices bound to this curve.

Returns:

JXG.Curve:

Reference to the curve object.

`visible`

(
• `v`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1718`

Set the visibility of an element

Parameters:

• `v` Boolean
Boolean which determines whether the element is drawn.

`Z`

(
• `t`
)

Treat the curve as curve with homogeneous coordinates.

Parameters:

• `t` Number

A number between 0.0 and 1.0.

Number:

Always 1.0

Properties

`_org_type`

Number final
Original type of the element at construction time. Used for removing glider property.

`_pos`

Number private
The position of this element inside the undefined.

Default: -1

`ancestors`

Object
Elements on which this element depends on are stored here.

`baseElement`

JXG.GeometryElement private

Default: null

`board`

JXG.Board
Reference to the board associated with the element.

`childElements`

Object
Stores all dependent objects to be updated when this point is moved.

`descendants`

Object
Elements depending on this element are stored here.

`dump`

Boolean
The element is saved with an explicit entry in the file (true) or implicitly via a composition.

Default: true

`elementClass`

Number final
The element's class.

String

`hasLabel`

Boolean
If element has a label subelement then this property will be set to true.

Default: false

`highlighted`

Boolean
True, if the element is currently highlighted.

Default: false

`id`

String
Unique identifier for the element. Equivalent to id-attribute of renderer element.

`isDraggable`

Boolean
Controls if this element can be dragged. In GEONExT only free points and gliders can be dragged.

Default: false

`isReal`

Boolean
If element is in two dimensional real space this is true, else false.

Default: true

`lastDragTime`

Date
Time stamp containing the last time this element has been dragged.

Default: creation time

`methodMap`

Object
The methodMap determines which methods can be called from within JessieCode and under which name it can be used. The map is saved in an object, the name of a property is the name of the method used in JessieCode, the value of a property is the name of the method in JavaScript.

`mouseover`

Boolean
Is the mouse over this element?

Default: false

`name`

String
Not necessarily unique name for the element.

Default: Name generated by {@link JXG.Board#generateName}.

Boolean

Default: true

`notExistingParents`

Object
Stores all Intersection Objects which in this moment are not real and so hide this element.

`numberPoints`

Number

Number of points on curves when plotted with `updateParametricCurveNaive`. This value changes between the attribute values `numberPointsLow` and `numberPointsHigh`. The first value is taken during drag events, the latter one is taken in the up event. It is set in JXG.Curve#updateCurve.

`numTraces`

Number
Counts the number of objects drawn as part of the trace of the element.

`parents`

Object
Ids of elements on which this element depends directly are stored here.

`qdt`

Stores a quad tree if it is required. The quad tree is generated in the curve updates and can be used to speed up the hasPoint method.

`quadraticform`

Array
Quadratic form representation of circles (and conics)

Default: [[1,0,0],[0,1,0],[0,0,1]]

`rendNode`

Object
Stores the rendering node for the element.

`stdform`

Array
[c,b0,b1,a,k,r,q0,q1] See A.E. Middleditch, T.W. Stacey, and S.B. Tor: "Intersection Algorithms for Lines and Circles", ACM Transactions on Graphics, Vol. 8, 1, 1989, pp 25-40. The meaning of the parameters is: Circle: points p=[p0,p1] on the circle fulfill a<p,p> + <b,p> + c = 0 For convenience we also store r: radius k: discriminant = sqrt(<b,b>-4ac) q=[q0,q1] center Points have radius = 0. Lines have radius = infinity. b: normalized vector, representing the direction of the line. Should be put into Coords, when all elements possess Coords.

Default: [1, 0, 0, 0, 1, 1, 0, 0]

`subs`

Object
Subs contains the subelements, created during the create method.

`symbolic`

Object
Stores variables for symbolic computations

`traces`

Object
Keeps track of all objects drawn as part of the trace of the element.

`transformations`

Array
Stores the transformations which are applied during update in an array

`type`

Number final
Type of the element.

`visProp`

Object
An associative array containing all visual properties.

Default: empty object

Events

`attribute`

Notify everytime an attribute is changed.

• `o` Object
A list of changed attributes and their new value.
• `el` Object
Reference to the element

`attribute:<attribute>`

This is a generic event handler. It exists for every possible attribute that can be set for any element, e.g. if you want to be notified everytime an element's strokecolor is changed, is the event attribute:strokecolor.

• `val` Object
The old value.
• `nval` Object
The new value
• `el` Object
Reference to the element

`down`

Whenever the user starts to touch or click an element.

• `e` Event
The browser's event object.

`drag`

This event is fired whenever the user drags an element.

• `e` Event
The browser's event object.

`mousedown`

Whenever the user starts to click an element.

• `e` Event
The browser's event object.

`mousedrag`

This event is fired whenever the user drags the element with a mouse.

• `e` Event
The browser's event object.

`mousemove`

This event is fired whenever the user is moving the mouse over an element.

• `e` Event
The browser's event object.

`mouseout`

This event is fired whenever the user puts the mouse away from an element.

• `e` Event
The browser's event object.

`mouseover`

This event is fired whenever the user puts the mouse over an element.

• `e` Event
The browser's event object.

`mouseup`

Whenever the user releases the mousebutton over an element.

• `e` Event
The browser's event object.

`move`

This event is fired whenever the user is moving over an element.

• `e` Event
The browser's event object.

`out`

This event is fired whenever the user is leaving an element.

• `e` Event
The browser's event object.

`over`

This event is fired whenever the user is hovering over an element.

• `e` Event
The browser's event object.

`touchdown`

Whenever the user starts to touch an element.

• `e` Event
The browser's event object.

`touchdrag`

This event is fired whenever the user drags the element on a touch device.

• `e` Event
The browser's event object.

`touchup`

Whenever the user stops touching an element.

• `e` Event
`up`
• `e` Event