Line2D
Constructors
Line2D(v1: object, v2: object)
Creates a new Line2D
from two points.
let line1 = new UDB.Line2D(new Vector2D(32, 64), new Vector2D(96, 128));
let line2 = new UDB.Line2D([ 32, 64 ], [ 96, 128 ]);
Parameters
- v1: First point
- v2: Second point
Static methods
areIntersecting(line1: Line2D, line2: Line2D, bounded: bool)
Checks if two lines intersect. If bounded
is set to true
(default) the finite length of the lines is used, otherwise the infinite length of the lines is used.
Parameters
- line1: First
Line2D
- line2: Second
Line2D
- bounded:
true
to use finite length of lines,false
to use infinite length of lines
Return value
true
if the lines intersect, false
if they do not
areIntersecting(a1: object, a2: object, b1: object, b2: object, bounded: bool)
Checks if two lines defined by their start and end points intersect. If bounded
is set to true
(default) the finite length of the lines is used, otherwise the infinite length of the lines is used.
Parameters
- a1: First point of first line
- a2: Second point of first line
- b1: First point of second line
- b2: Second point of second line
- bounded:
true
(default) to use finite length of lines,false
to use infinite length of lines
Return value
true
if the lines intersect, false
if they do not
getCoordinatesAt(v1: object, v2: object, u: double)
Returns the coordinate on a line defined by its start and end points as Vector2D
.
Parameters
- v1: First point of the line
- v2: Second point of the line
- u: Offset coordinate relative to the first point of the line
Return value
Point on the line as Vector2D
getDistanceToLine(v1: object, v2: object, p: object, bounded: bool)
Returns the shortest distance from point p
to the line defined by its start and end points. If bounded
is set to true
(default) the finite length of the lines is used, otherwise the infinite length of the lines is used.
Parameters
- v1: First point of the line
- v2: Second point of the line
- p: Point to get the distance to
- bounded:
true
(default) to use finite length of lines,false
to use infinite length of lines
Return value
The shortest distance to the line
getDistanceToLineSq(v1: object, v2: object, p: object, bounded: bool)
Returns the shortest square distance from point p
to the line defined by its start and end points. If bounded
is set to true
(default) the finite length of the lines is used, otherwise the infinite length of the lines is used.
Parameters
- v1: First point of the line
- v2: Second point of the line
- p: Point to get the distance to
- bounded:
true
(default) to use finite length of lines,false
to use infinite length of lines
Return value
The shortest square distance to the line
getIntersectionPoint(a1: object, a2: object, b1: object, b2: object, bounded: bool)
Returns the intersection point of two lines as Vector2D
. If the lines do not intersect the x
and y
properties of the Vector2D
are NaN
. If bounded
is set to true
(default) the finite length of the lines is used, otherwise the infinite length of the lines is used.
Parameters
- a1: First point of first line
- a2: Second point of first line
- b1: First point of second line
- b2: Second point of second line
- bounded:
true
(default) to use finite length of lines,false
to use infinite length of lines
Return value
The intersection point as Vector2D
getNearestOnLine(v1: object, v2: object, p: object)
Returns the offset coordinate on the line nearest to the given point. 0.0
being on the first point, 1.0
being on the second point, and u = 0.5
being in the middle between the points.
Parameters
- v1: First point of the line
- v2: Second point of the line
- p: Point to get the nearest offset coordinate from
Return value
The offset value relative to the first point of the line.
getSideOfLine(v1: object, v2: object, p: object)
Returns which the of the line defined by its start and end point a given point is on.
Parameters
- v1: First point of the line
- v2: Second point of the line
- p: Point to check
Return value
< 0
if p
is on the front (right) side, > 0
if p
is on the back (left) side, == 0
if p
in on the line
Properties
v1
Vector2D
position of start of the line.
v2
Vector2D
position of end of the line.
Methods
getAngle()
Return the angle of the Line2D
in degrees.
Return value
Angle of the Line2D
in degrees
getAngleRad()
Returns the angle of the Line2D
in radians.
Return value
Angle of Line2D
in radians
getCoordinatesAt(u: double)
Returns the coordinates on the line, where u
is the position between the first and second point, u = 0.0
being on the first point, u = 1.0
being on the second point, and u = 0.5
being in the middle between the points.
Parameters
- u: Position on the line, between 0.0 and 1.0
Return value
Position on the line as Vector2D
getIntersectionPoint(a1: object, a2: object, bounded: bool)
Returns the intersection point of of the given line defined by its start and end points with this line as Vector2D
. If the lines do not intersect the x
and y
properties of the Vector2D
are NaN
. If bounded
is set to true
(default) the finite length of the lines is used, otherwise the infinite length of the lines is used.
Parameters
- a1: First point of first line
- a2: Second point of first line
- bounded:
true
(default) to use finite length of lines,false
to use infinite length of lines
Return value
The intersection point as Vector2D
getIntersectionPoint(ray: Line2D, bounded: bool)
Returns the intersection point of of the given line with this line as Vector2D
. If the lines do not intersect the x
and y
properties of the Vector2D
are NaN
. If bounded
is set to true
(default) the finite length of the lines is used, otherwise the infinite length of the lines is used.
Parameters
- ray: Other
Line2D
to get the intersection point from - bounded:
true
(default) to use finite length of lines,false
to use infinite length of lines
Return value
The intersection point as Vector2D
getLength()
Returns the length of the Line2D
.
Return value
Length of the Line2D
getPerpendicular()
Returns the perpendicular of this line as Vector2D
.
Return value
Perpendicular of this line as Vector2D
getSideOfLine(p: object)
Returns which the of the line defined by its start and end point a given point is on.
Parameters
- p: Point to check
Return value
< 0
if p
is on the front (right) side, > 0
if p
is on the back (left) side, == 0
if p
in on the line
isIntersecting(ray: Line2D, bounded: bool)
Checks if the given Line2D
intersects this line. If bounded
is set to true
(default) the finite length of the lines is used, otherwise the infinite length of the lines is used.
Parameters
- ray:
Line2D
to check against - bounded:
true
(default) to use finite length of lines,false
to use infinite length of lines
Return value
true
if lines intersect, false
if they do not intersect
isIntersecting(a1: object, a2: object, bounded: bool)
Checks if the given line intersects this line. If bounded
is set to true
(default) the finite length of the lines is used, otherwise the infinite length of the lines is used.
Parameters
- a1: First point of the line to check against
- a2: Second point of the line to check against
- bounded:
true
(default) to use finite length of lines,false
to use infinite length of lines
Return value
true
if the lines intersect, false
if they do not