line2

0.2.1 • Public • Published

line2

install

npm install line2

or include it in a script tag in the browser

use

 
var Line = require('line2');
 
var l = new Line(0, 0, 10, 10);
 
console.log(l.slope(), l.yintercept(), l.xintercept()); // 1 0 0
 

api surface

Line2(x1, y1, x2, y2) or Line2(slope, yIntercept)

returns a new Line2

change(fn)

add an observer that will be notified of any change.

callback signature: function(line) {}

ignore([fn])

Removes a listener, if no fn is passed remove them all.

notify()

Call all of the listeners, manually.

yintercept([y])

return the computed y-intercept or null if verical

When y is passed it will set the y-intercept of this line and the x-intercept if appropriate (not horizontal)

xintercept([x])

return the computed x-intercept or null if horizontal

when x is passed it will set the x-intercept of this line and the y-intercept if appropriate (not vertical)

slope([slope])

return the computed slope.

When slope is passed it will set the slope of this line

note: this will be Infinity if the line is vertical

intersectSegment(x1, y1, x2, y2)

returns:

  • true when the segment is colinear with this line
  • false when the segment does not intersect with this line
  • Vec2 representing where the point of interesection

createPerpendicular(vec2)

returns a new line instance that is perpendicular to this line and goes through the provided point

intersectCircle(vec2, radius)

returns an array of Vec2s which represent the intersections.

a length of:

  • 0 means no intersections
  • 1 means the line is tangent to the provided circle
  • 2 means the line fully intersects

solveForX(y)

return the x coordinate using the provided y

solveForY(x)

return the y coordinate using the provided x

intersect(line2) or intersect(x1, y1, x2, y2)

returns a Vec2 representing the point of intersection if there was one.

If the lines are colinear, it returns true

If there is no intersection, it returns false

isHorizontal()

return boolean

isVertical()

return boolean

closestPointTo(vec2)

returns the a Vec2 representing the closest point on this line to the provided vec2

containsPoint(vec2)

returns true if the provided vec2 is on this line

license

MIT (see: license.txt)

Package Sidebar

Install

npm i line2

Weekly Downloads

1,561

Version

0.2.1

License

MIT

Last publish

Collaborators

  • tmpvar