Class JXG.CoordsElement
JXG.GeometryElement
↳ JXG.CoordsElement
Creates a new coords element object. Do not use this constructor to create an element.
Defined in: coordselement.js.
Extends
JXG.GeometryElement.
Constructor Attributes  Constructor Name and Description 

<private> 
JXG.CoordsElement(coordinates, isLabel)
An element containing coords is the basic geometric element.

 Fields borrowed from class JXG.GeometryElement:
 _org_type, _pos, ancestors, baseElement, board, childElements, dash, descendants, draft, dragToTopOfLayer, dump, elementClass, elType, fillColor, fillOpacity, fixed, frozen, gradient, gradientAngle, gradientCX, gradientCY, gradientEndOffset, gradientFR, gradientFX, gradientFY, gradientR, gradientSecondColor, gradientSecondOpacity, gradientStartOffset, hasLabel, highlight, highlighted, highlightFillColor, highlightFillOpacity, highlightStrokeColor, highlightStrokeOpacity, highlightStrokeWidth, id, inherits, isDraggable, isReal, lastDragTime, methodMap, mouseover, name, needsRegularUpdate, needsUpdate, notExistingParents, numTraces, parents, precision, quadraticform, rendNode, scalable, shadow, stdform, strokeColor, strokeOpacity, strokeWidth, subs, symbolic, trace, traceAttributes, traces, transformations, transitionDuration, type, visible, visProp, visPropCalc, withLabel
Field Attributes  Field Name and Description 

<private> 
Coordinates of the element.

<private> 
Stores the groups of this element in an array of Group.

A JXG.CoordsElement#updateGlider call is usually followed
by a general JXG.Board#update which calls
JXG.CoordsElement#updateGliderFromParent.


<private> 
Determines whether the element slides on a polygon if point is a glider.

<private> 
Relative position on a slide element (line, circle, curve) if element is a glider on this element.

When used as a glider this member stores the object, where to glide on.


List of elements the element is bound to, i.e.

 Fields borrowed from class JXG.GeometryElement:
 _org_type, _pos, ancestors, baseElement, board, childElements, dash, descendants, draft, dragToTopOfLayer, dump, elementClass, elType, fillColor, fillOpacity, fixed, frozen, gradient, gradientAngle, gradientCX, gradientCY, gradientEndOffset, gradientFR, gradientFX, gradientFY, gradientR, gradientSecondColor, gradientSecondOpacity, gradientStartOffset, hasLabel, highlight, highlighted, highlightFillColor, highlightFillOpacity, highlightStrokeColor, highlightStrokeOpacity, highlightStrokeWidth, id, inherits, isDraggable, isReal, lastDragTime, methodMap, mouseover, name, needsRegularUpdate, needsUpdate, notExistingParents, numTraces, parents, precision, quadraticform, rendNode, scalable, shadow, stdform, strokeColor, strokeOpacity, strokeWidth, subs, symbolic, trace, traceAttributes, traces, transformations, transitionDuration, type, visible, visProp, visPropCalc, withLabel
Method Attributes  Method Name and Description 

<private> 
_anim(direction, stepCount)
Animates a glider.

<private> 
addAnchor(coordinates, isLabel)
In case there is an attribute "anchor", the element is bound to
this anchor element.

addConstraint(terms)
Convert the point to CAS point and call update().


addTransform(el, transform)
Add transformations to this point.


<static> 
JXG.CoordsElement.create(Callback, board, coords, attr, arg1, arg2)
Generic method to create point, text or image.

Dist(point2)
Getter method for the distance to a second point, this is required for CASelements.


free()
Converts a calculated element into a free element,
i.e.


A point can change its type from free point to glider
and vice versa.


handleSnapToPoints(force)
Let a point snap to the nearest point in distance of
JXG.Point#attractorDistance.


makeGlider(slide)
Convert the point to glider and update the construction.


moveAlong(path, time, options)
Starts an animation which moves the point along a given path in given time.


moveTo(where, time, options)
Starts an animated point movement towards the given coordinates where.


Remove the last slideObject.


Sets the position of a glider relative to the defining elements
of the JXG.Point#slideObject.


setPosition(method, coords)
Sets coordinates and calls the point's update() method.


setPositionByTransform(method, tv)
Translates the point by tv = (x, y).


setPositionDirectly(method, coords)
Sets coordinates and calls the point's update() method.


snapToGrid(force)
Alias for JXG.Element#handleSnapToGrid


snapToPoints(force)
Alias for JXG.CoordsElement#handleSnapToPoints.


<private> 
Dummy function for unconstrained points or gliders.

<private> 
updateCoords(fromParent)
Updates the coordinates of the element.

<private> 
Update of glider in case of dragging the glider or setting the postion of the glider.

<private> 
Update of a glider in case a parent element has been updated.

Applies the transformations of the element.


visit(where, time, options)
Starts an animated point movement towards the given coordinates where.


X()
Getter method for x, this is used by for CASpoints to access point coordinates.


<private> 
XEval()
New evaluation of the function term.

Y()
Getter method for y, this is used by CASpoints to access point coordinates.


<private> 
YEval()
New evaluation of the function term.

Z()
Getter method for z, this is used by CASpoints to access point coordinates.


<private> 
ZEval()
New evaluation of the function term.

 Methods borrowed from class JXG.GeometryElement:
 _set, addChild, addDescendants, addParents, addRotation, addTicks, animate, bounds, clearTrace, cloneToBackground, countChildren, createGradient, createLabel, draggable, fullUpdate, generatePolynomial, getAttribute, getAttributes, getLabelAnchor, getName, getParents, getProperty, getTextAnchor, getType, handleSnapToGrid, hasPoint, hide, hideElement, labelColor, noHighlight, normalize, prepareUpdate, remove, removeAllTicks, removeChild, removeDescendants, removeTicks, resolveShortcuts, setArrow, setAttribute, setDash, setDisplayRendNode, setLabel, setLabelText, setName, setParents, setProperty, show, showElement, update, updateRenderer, updateVisibility
 Events borrowed from class JXG.GeometryElement:
 attribute, attribute:key, down, drag, mousedown, mousedrag, mousemove, mouseout, mouseover, mouseup, move, out, over, pendown, pendrag, penup, touchdown, touchdrag, touchup, up
Class Detail
<private>
JXG.CoordsElement(coordinates, isLabel)
An element containing coords is the basic geometric element. Based on points lines and circles can be constructed which can be intersected
which in turn are points again which can be used to construct new lines, circles, polygons, etc. This class holds methods for
all kind of coordinate elements like points, texts and images.
 Parameters:
 {Array} coordinates
 An array with the affine user coordinates of the point. JXG.Options#elements, and  optionally  a name and an id.
 isLabel
Field Detail
<private>
{JXG.Coords}
coords
Coordinates of the element.
<private>
{Array}
groups
Stores the groups of this element in an array of Group.
 See:
 JXG.Group
needsUpdateFromParent
A JXG.CoordsElement#updateGlider call is usually followed
by a general JXG.Board#update which calls
JXG.CoordsElement#updateGliderFromParent.
To prevent double updates, JXG.CoordsElement#needsUpdateFromParent
is set to false in updateGlider() and reset to true in the following call to
JXG.CoordsElement#updateGliderFromParent
<private>
{Boolean}
onPolygon
Determines whether the element slides on a polygon if point is a glider.
 Default Value:
 false
<private>
{Number}
position
Relative position on a slide element (line, circle, curve) if element is a glider on this element.
{JXG.GeometryElement}
slideObject
When used as a glider this member stores the object, where to glide on.
To set the object to glide on use the method
JXG.Point#makeGlider and DO NOT set this property directly
as it will break the dependency tree.
slideObjects
List of elements the element is bound to, i.e. the element glides on.
Only the last entry is active.
Use JXG.Point#popSlideObject to remove the currently active slideObject.
Method Detail
<private>
{JXG.CoordsElement}
_anim(direction, stepCount)
Animates a glider. Is called by the browser after startAnimation is called.
 Parameters:
 {Number} direction
 The direction the glider is animated.
 {Number} stepCount
 The number of steps in which the parent element is divided. Must be at least 1.
 Returns:
 {JXG.CoordsElement} Reference to itself.
 See:
 #startAnimation
 #stopAnimation
<private>
addAnchor(coordinates, isLabel)
In case there is an attribute "anchor", the element is bound to
this anchor element.
This is handled with this.relativeCoords. If the element is a label
relativeCoords are given in scrCoords, otherwise in usrCoords.
 Parameters:
 coordinates
 isLabel
addConstraint(terms)
Convert the point to CAS point and call update().
 Parameters:
 {Array} terms
 [[zterm], xterm, yterm] defining terms for the z, x and y coordinate.
The zcoordinate is optional and it is used for homogeneous coordinates.
The coordinates may be either
 a JavaScript function,
 a string containing GEONExT syntax. This string will be converted into a JavaScript function here,
 a Number
 a pointer to a slider object. This will be converted into a call of the Value()method of this slider.
 See:
 JXG.GeonextParser#geonext2JS
{JXG.CoordsElement}
addTransform(el, transform)
Add transformations to this point.
 Parameters:
 {JXG.GeometryElement} el
 {JXG.TransformationArray} transform
 Either one JXG.Transformation or an array of JXG.Transformations.
 Returns:
 {JXG.CoordsElement} Reference to itself.
<static>
JXG.CoordsElement.create(Callback, board, coords, attr, arg1, arg2)
Generic method to create point, text or image.
Determines the type of the construction, i.e. free, or constrained by function,
transformation or of glider type.
 Parameters:
 Callback
 board
 coords
 attr
 arg1
 arg2
{Number}
Dist(point2)
Getter method for the distance to a second point, this is required for CASelements.
Here, function inlining seems to be worthwile (for plotting).
 Parameters:
 {JXG.Point} point2
 The point to which the distance shall be calculated.
 Returns:
 {Number} Distance in user coordinate to the given point
free()
Converts a calculated element into a free element,
i.e. it will delete all ancestors and transformations and,
if the element is currently a glider, will remove the slideObject reference.
{JXG.Point}
handleAttractors()
A point can change its type from free point to glider
and vice versa. If it is given an array of attractor elements
(attribute attractors) and the attribute attractorDistance
then the point will be made a glider if it less than attractorDistance
apart from one of its attractor elements.
If attractorDistance is equal to zero, the point stays in its
current form.
 Returns:
 {JXG.Point} Reference to this element
{JXG.Point}
handleSnapToPoints(force)
Let a point snap to the nearest point in distance of
JXG.Point#attractorDistance.
The function uses the coords object of the point as
its actual position.
 Parameters:
 {Boolean} force
 force snapping independent from what the snaptogrid attribute says
 Returns:
 {JXG.Point} Reference to this element
makeGlider(slide)
Convert the point to glider and update the construction.
To move the point visual onto the glider, a call of board update is necessary.
 Parameters:
 {StringObject} slide
 The object the point will be bound to.
{JXG.CoordsElement}
moveAlong(path, time, options)
Starts an animation which moves the point along a given path in given time.
 Parameters:
 {Arrayfunction} path
 The path the point is moved on. This can be either an array of arrays or containing x and y values of the points of the path, or an array of points, or a function taking the amount of elapsed time since the animation has started and returns an array containing a x and a y value or NaN. In case of NaN the animation stops.
 {Number} time
 The time in milliseconds in which to finish the animation
 {Object} options Optional
 Optional settings for the animation.
 {function} options.callback Optional
 A function that is called as soon as the animation is finished.
 {Boolean} options.interpolate Optional, Default: true
 If path is an array moveAlong() will interpolate the path using JXG.Math.Numerics.Neville. Set this flag to false if you don't want to use interpolation.
 Returns:
 {JXG.CoordsElement} Reference to itself.
{JXG.CoordsElement}
moveTo(where, time, options)
Starts an animated point movement towards the given coordinates where.
The animation is done after time milliseconds.
If the second parameter is not given or is equal to 0, setPosition() is called, see #setPosition,
i.e. the coordinates are changed without animation.
 Parameters:
 {Array} where
 Array containing the x and y coordinate of the target location.
 {Number} time Optional
 Number of milliseconds the animation should last.
 {Object} options Optional
 Optional settings for the animation
 {function} options.callback Optional
 A function that is called as soon as the animation is finished.
 {String} options.effect Optional, Default: '<>'
 animation effects like speed fade in and out. possible values are '<>' for speed increase on start and slow down at the end (default) and '' for constant speed during the whole animation.
 Returns:
 {JXG.CoordsElement} Reference to itself.
popSlideObject()
Remove the last slideObject. If there are more than one elements the point is bound to,
the second last element is the new active slideObject.
{JXG.Point}
setGliderPosition(x)
Sets the position of a glider relative to the defining elements
of the JXG.Point#slideObject.
 Parameters:
 {Number} x
 Returns:
 {JXG.Point} Reference to the point element.
{JXG.Point}
setPosition(method, coords)
Sets coordinates and calls the point's update() method.
 Parameters:
 {Number} method
 The type of coordinates used here. Possible values are JXG.COORDS_BY_USER and JXG.COORDS_BY_SCREEN.
 {Array} coords
 coordinates in screen/user units
 Returns:
 {JXG.Point}
{JXG.Point}
setPositionByTransform(method, tv)
Translates the point by tv = (x, y).
 Parameters:
 {Number} method
 The type of coordinates used here. Possible values are JXG.COORDS_BY_USER and JXG.COORDS_BY_SCREEN.
 {Array} tv
 (x, y)
 Returns:
 {JXG.Point}
{JXG.Point}
setPositionDirectly(method, coords)
Sets coordinates and calls the point's update() method.
 Parameters:
 {Number} method
 The type of coordinates used here. Possible values are JXG.COORDS_BY_USER and JXG.COORDS_BY_SCREEN.
 {Array} coords
 coordinates ([z], x, y) in screen/user units
 Returns:
 {JXG.Point} this element
{JXG.Point}
snapToGrid(force)
Alias for JXG.Element#handleSnapToGrid
 Parameters:
 {Boolean} force
 force snapping independent from what the snaptogrid attribute says
 Returns:
 {JXG.Point} Reference to this element
{JXG.Point}
snapToPoints(force)
Alias for JXG.CoordsElement#handleSnapToPoints.
 Parameters:
 {Boolean} force
 force snapping independent from what the snaptogrid attribute says
 Returns:
 {JXG.Point} Reference to this element
<private>
updateConstraint()
Dummy function for unconstrained points or gliders.
<private>
updateCoords(fromParent)
Updates the coordinates of the element.
 Parameters:
 fromParent
<private>
updateGlider()
Update of glider in case of dragging the glider or setting the postion of the glider.
The relative position of the glider has to be updated.
In case of a glider on a line:
If the second point is an ideal point, then 1 < this.position < 1,
this.position==+/1 equals point2, this.position==0 equals point1
If the first point is an ideal point, then 0 < this.position < 2
this.position==0 or 2 equals point1, this.position==1 equals point2
<private>
updateGliderFromParent()
Update of a glider in case a parent element has been updated. That means the
relative position of the glider stays the same.
{JXG.CoordsElement}
updateTransform()
Applies the transformations of the element.
This method applies to text and images. Point transformations are handled differently.
 Returns:
 {JXG.CoordsElement} Reference to itself.
{JXG.CoordsElement}
visit(where, time, options)
Starts an animated point movement towards the given coordinates where. After arriving at
where the point moves back to where it started. The animation is done after time
milliseconds.
 Parameters:
 {Array} where
 Array containing the x and y coordinate of the target location.
 {Number} time
 Number of milliseconds the animation should last.
 {Object} options Optional
 Optional settings for the animation
 {function} options.callback Optional
 A function that is called as soon as the animation is finished.
 {String} options.effect Optional, Default: '<>'
 animation effects like speed fade in and out. possible values are '<>' for speed increase on start and slow down at the end (default) and '' for constant speed during the whole animation.
 {Number} options.repeat Optional, Default: 1
 How often this animation should be repeated.
 Returns:
 {JXG.CoordsElement} Reference to itself.
{Number}
X()
Getter method for x, this is used by for CASpoints to access point coordinates.
 Returns:
 {Number} User coordinate of point in x direction.
<private>
{Number}
XEval()
New evaluation of the function term.
This is required for CASpoints: Their XTerm() method is
overwritten in JXG.CoordsElement#addConstraint.
 Returns:
 {Number} User coordinate of point in x direction.
{Number}
Y()
Getter method for y, this is used by CASpoints to access point coordinates.
 Returns:
 {Number} User coordinate of point in y direction.
<private>
{Number}
YEval()
New evaluation of the function term.
This is required for CASpoints: Their YTerm() method is overwritten
in JXG.CoordsElement#addConstraint.
 Returns:
 {Number} User coordinate of point in y direction.
{Number}
Z()
Getter method for z, this is used by CASpoints to access point coordinates.
 Returns:
 {Number} User coordinate of point in z direction.
<private>
{Number}
ZEval()
New evaluation of the function term.
This is required for CASpoints: Their ZTerm() method is overwritten in
JXG.CoordsElement#addConstraint.
 Returns:
 {Number} User coordinate of point in z direction.