Class JXG.Line
JXG.GeometryElement
↳ JXG.Line
Creates a new basic line object. Do not use this constructor to create a line. Use JXG.Board#create with
type Line, Arrow, or Axis instead.
Defined in: line.js.
Extends
JXG.GeometryElement.
Constructor Attributes | Constructor Name and Description |
---|---|
JXG.Line(board, p1, p2, id, name, withLabel, layer)
The Line class is a basic class for all kind of line objects, e.g.
|
- Fields borrowed from class JXG.GeometryElement:
- _pos, addEvent, ancestors, baseElement, board, childElements, dash, descendants, draft, dump, elementClass, elType, eventHandlers, fillColor, fillOpacity, fixed, frozen, getProperty, hasLabel, highlight, highlighted, highlightFillColor, highlightFillOpacity, highlightStrokeColor, highlightStrokeOpacity, highlightStrokeWidth, id, isDraggable, isReal, lastDragTime, methodMap, mouseover, name, needsRegularUpdate, needsUpdate, notExistingParents, numTraces, quadraticform, removeEvent, rendNode, scalable, setProperty, shadow, snapToGrid, stdform, strokeColor, strokeOpacity, strokeWidth, subs, symbolic, trace, traceAttributes, traces, transformations, type, visible, visProp, withLabel
Field Attributes | Field Name and Description |
---|---|
Reference of the ticks created automatically when constructing an axis.
|
|
<private> |
If the line is the border of a polygon, the polygon object is stored, otherwise null.
|
Startpoint of the line.
|
|
Endpoint of the line.
|
|
Array of ticks storing all the ticks on this line.
|
- Fields borrowed from class JXG.GeometryElement:
- _pos, addEvent, ancestors, baseElement, board, childElements, dash, descendants, draft, dump, elementClass, elType, eventHandlers, fillColor, fillOpacity, fixed, frozen, getProperty, hasLabel, highlight, highlighted, highlightFillColor, highlightFillOpacity, highlightStrokeColor, highlightStrokeOpacity, highlightStrokeWidth, id, isDraggable, isReal, lastDragTime, methodMap, mouseover, name, needsRegularUpdate, needsUpdate, notExistingParents, numTraces, quadraticform, removeEvent, rendNode, scalable, setProperty, shadow, snapToGrid, stdform, strokeColor, strokeOpacity, strokeWidth, subs, symbolic, trace, traceAttributes, traces, transformations, type, visible, visProp, withLabel
Method Attributes | Method Name and Description |
---|---|
addTicks(ticks)
Adds ticks to this line.
|
|
addTransform(transform)
Add transformations to this line.
|
|
<private> |
Used to generate a polynomial for a point p that lies on this line, i.e.
|
getAngle()
Determines the angle between the positive x axis and the line.
|
|
getRise()
Calculates the y intersect of the line.
|
|
getSlope()
Calculates the slope of the line.
|
|
hasPoint(x, y)
Checks whether (x,y) is near the line.
|
|
L()
The distance between the two points defining the line.
|
|
<private> |
maxX()
Treat the element as parametric curve
|
<private> |
minX()
Treat the element as a parametric curve
|
Removes all ticks from a line.
|
|
removeTicks(tick)
Removes ticks identified by parameter named tick from this line.
|
|
<private> |
setLabelRelativeCoords(relCoords)
Adjusts Label coords relative to Anchor.
|
setPosition(method, tv)
Apply a translation by tv = (x, y) to the line.
|
|
setPositionDirectly(method, coords, oldcoords)
Moves the line by the difference of two coordinates.
|
|
<private> |
setStraight(straightFirst, straightLast)
Determines whether the line is drawn beyond #point1 and #point2 and updates the line.
|
<private> |
Uses the boards renderer to update the line.
|
<private> |
Update segments with fixed length and at least one movable point.
|
<private> |
Updates the stdform derived from the parent point positions.
|
X(t)
Treat the line as parametric curve in homogeneous coordinates, where the parameter t runs from 0 to 1.
|
|
Y(t)
Treat the line as parametric curve in homogeneous coordinates.
|
|
Z(t)
Treat the line as parametric curve in homogeneous coordinates.
|
- Methods borrowed from class JXG.GeometryElement:
- _set, addChild, addDescendants, addRotation, animate, bounds, clearTrace, cloneToBackground, countChildren, createGradient, createLabel, draggable, getAttribute, getAttributes, getLabelAnchor, getName, getParents, getTextAnchor, getType, hideElement, labelColor, noHighlight, normalize, off, on, prepareUpdate, remove, removeChild, removeDescendants, resolveShortcuts, setArrow, setAttribute, setDash, setLabelText, showElement, triggerEventHandlers, update
- Events borrowed from class JXG.GeometryElement:
- attribute, attribute:<attribute><attribute>, down, drag, mousedown, mousedrag, mousemove, mouseout, mouseover, mouseup, move, out, over, touchdown, touchdrag, touchup, up
Class Detail
JXG.Line(board, p1, p2, id, name, withLabel, layer)
The Line class is a basic class for all kind of line objects, e.g. line, arrow, and axis. It is usually defined by two points and can
be intersected with some other geometry elements.
- Parameters:
- {String|JXG.Board} board
- The board the new line is drawn on.
- {Point} p1
- Startpoint of the line.
- {Point} p2
- Endpoint of the line.
- {String} id
- Unique identifier for this object. If null or an empty string is given, an unique id will be generated by Board
- {String} name
- Not necessarily unique name. If null or an empty string is given, an unique name will be generated.
- {Boolean} withLabel
- construct label, yes/no
- {Number} layer
- display layer [0-9]
Field Detail
{JXG.Ticks}
defaultTicks
Reference of the ticks created automatically when constructing an axis.
- See:
- JXG.Ticks
<private>
{JXG.Polygon}
parentPolygon
If the line is the border of a polygon, the polygon object is stored, otherwise null.
- Default Value:
- null
{JXG.Point}
point1
Startpoint of the line. You really should not set this field directly as it may break JSXGraph's
udpate system so your construction won't be updated properly.
{JXG.Point}
point2
Endpoint of the line. Just like #point1 you shouldn't write this field directly.
{Array}
ticks
Array of ticks storing all the ticks on this line. Do not set this field directly and use
JXG.Line#addTicks and JXG.Line#removeTicks to add and remove ticks to and from the line.
- See:
- JXG.Ticks
Method Detail
{String}
addTicks(ticks)
Adds ticks to this line. Ticks can be added to any kind of line: line, arrow, and axis.
- Parameters:
- {JXG.Ticks} ticks
- Reference to a ticks object which is describing the ticks (color, distance, how many, etc.).
- Returns:
- {String} Id of the ticks object.
{JXG.Line}
addTransform(transform)
Add transformations to this line.
- Parameters:
- {JXG.Transformation|Array} transform
- Either one JXG.Transformation or an array of JXG.Transformations.
- Returns:
- {JXG.Line} Reference to this line object.
<private>
{Array}
generatePolynomial(p)
Used to generate a polynomial for a point p that lies on this line, i.e. p is collinear to #point1
and #point2.
- Parameters:
- {JXG.Point} p
- The point for that the polynomial is generated.
- Returns:
- {Array} An array containing the generated polynomial.
{Number}
getAngle()
Determines the angle between the positive x axis and the line.
- Returns:
- {Number}
{Number}
getRise()
Calculates the y intersect of the line.
- Returns:
- {Number} The y intersect.
{Number}
getSlope()
Calculates the slope of the line.
- Returns:
- {Number} The slope of the line or Infinity if the line is parallel to the y-axis.
{Boolean}
hasPoint(x, y)
Checks whether (x,y) is near the line.
- Parameters:
- {Number} x
- Coordinate in x direction, screen coordinates.
- {Number} y
- Coordinate in y direction, screen coordinates.
- Returns:
- {Boolean} True if (x,y) is near the line, False otherwise.
{Number}
L()
The distance between the two points defining the line.
- Returns:
- {Number}
<private>
maxX()
Treat the element as parametric curve
<private>
minX()
Treat the element as a parametric curve
removeAllTicks()
Removes all ticks from a line.
removeTicks(tick)
Removes ticks identified by parameter named tick from this line.
- Parameters:
- {JXG.Ticks} tick
- Reference to tick object to remove.
<private>
setLabelRelativeCoords(relCoords)
Adjusts Label coords relative to Anchor. DESCRIPTION
- Parameters:
- relCoords
{JXG.Line}
setPosition(method, tv)
Apply a translation by tv = (x, y) to the line.
- 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.Line} Reference to this line object.
{JXG.Line}
setPositionDirectly(method, coords, oldcoords)
Moves the line by the difference of two coordinates.
- 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
- {Array} oldcoords
- previous coordinates in screen/user units
- Returns:
- {JXG.Line} this element
<private>
setStraight(straightFirst, straightLast)
Determines whether the line is drawn beyond #point1 and #point2 and updates the line.
- Parameters:
- {Boolean} straightFirst
- True if the Line shall be drawn beyond #point1, false otherwise.
- {Boolean} straightLast
- True if the Line shall be drawn beyond #point2, false otherwise.
- See:
- #straightFirst
- #straightLast
<private>
updateRenderer()
Uses the boards renderer to update the line.
<private>
updateSegmentFixedLength()
Update segments with fixed length and at least one movable point.
<private>
updateStdform()
Updates the stdform derived from the parent point positions.
{Number}
X(t)
Treat the line as parametric curve in homogeneous coordinates, where the parameter t runs from 0 to 1.
First we transform the interval [0,1] to [-1,1].
If the line has homogeneous coordinates [c,a,b] = stdform[] then the direction of the line is [b,-a].
Now, we take one finite point that defines the line, i.e. we take either point1 or point2 (in case the line is not the ideal line).
Let the coordinates of that point be [z, x, y].
Then, the curve runs linearly from
[0, b, -a] (t=-1) to [z, x, y] (t=0)
and
[z, x, y] (t=0) to [0, -b, a] (t=1)
- Parameters:
- {Number} t
- Parameter running from 0 to 1.
- Returns:
- {Number} X(t) x-coordinate of the line treated as parametric curve.
{Number}
Y(t)
Treat the line as parametric curve in homogeneous coordinates. See #X for a detailed description.
- Parameters:
- {Number} t
- Parameter running from 0 to 1.
- Returns:
- {Number} Y(t) y-coordinate of the line treated as parametric curve.
{Number}
Z(t)
Treat the line as parametric curve in homogeneous coordinates. See #X for a detailed description.
- Parameters:
- {Number} t
- Parameter running from 0 to 1.
- Returns:
- {Number} Z(t) z-coordinate of the line treated as parametric curve.