Line

Line

Class representing a line

Constructor

new Line(pt, norm)

Line may be constructed by point and normal vector or by two points that a line passes through
Source:
Parameters:
Name Type Description
pt Point point that a line passes through
norm Vector | Point normal vector to a line or second point a line passes through

Classes

Line

Members

box

Returns infinite box
Source:

end

Line has no end point
Source:

length

Return positive infinity number as length
Source:

middle

Middle point is undefined
Source:

norm :Vector

Normal vector to a line
Vector is normalized (length == 1)
Direction of the vector is chosen to satisfy inequality norm * p >= 0
Source:
Type:

pt :Point

Point a line passes through
Source:
Type:

slope

Slope of the line - angle in radians between line and axe x from 0 to 2PI
Source:

standard

Get coefficients [A,B,C] of a standard line equation in the form Ax + By = C
Source:

Methods

clone() → {Line}

Return new cloned instance of line
Source:
Returns:
Type:
Line

contains(pt) → {boolean}

Returns true if point belongs to line
Source:
Parameters:
Name Type Description
pt Point Query point
Returns:
Type:
boolean

coord(pt) → {number}

Return coordinate of the point that lies on the line in the transformed coordinate system where center is the projection of the point(0,0) to the line and axe y is collinear to the normal vector.
This method assumes that point lies on the line and does not check it
Source:
Parameters:
Name Type Description
pt Point point on a line
Returns:
Type:
number

distanceTo(shape)

Calculate distance and shortest segment from line to shape and returns array [distance, shortest_segment]
Source:
Parameters:
Name Type Description
shape Shape Shape of the one of the types Point, Circle, Segment, Arc, Polygon
Returns:

incidentTo(other_line) → {boolean}

Returns true if incident to other line
Source:
Parameters:
Name Type Description
other_line Line line to check
Returns:
Type:
boolean

intersect(shape) → {Array.<Point>}

Returns array of intersection points
Source:
Parameters:
Name Type Description
shape Shape shape to intersect with
Returns:
Type:
Array.<Point>

parallelTo(other_line) → {boolean}

Return true if parallel or incident to other line
Source:
Parameters:
Name Type Description
other_line Line line to check
Returns:
Type:
boolean

rotate(angle, center)

Return new line rotated by angle
Source:
Parameters:
Name Type Description
angle number angle in radians
center Point center of rotation

sortPoints(pts) → {Array.<Point>}

Sort given array of points that lay on a line with respect to coordinate on a line The method assumes that points lay on the line and does not check this
Source:
Parameters:
Name Type Description
pts Array.<Point> array of points
Returns:
Type:
Array.<Point>
new array sorted

split(pt) → {MultilineShapes}

Split line with a point or array of points and return array of shapes Assumed (but not checked) that all points lay on the line
Source:
Parameters:
Name Type Description
pt Point | Array.<Point>
Returns:
Type:
MultilineShapes

svg(box, attrs)

Return string to draw svg segment representing line inside given box
Source:
Parameters:
Name Type Description
box Box Box representing drawing area
attrs Object an object with attributes of svg circle element

transform(m) → {Line}

Return new line transformed by affine transformation matrix
Source:
Parameters:
Name Type Description
m Matrix affine transformation matrix (a,b,c,d,tx,ty)
Returns:
Type:
Line