Skip to content

a simple collection of 2d collision/intersects functions. Supports points, circles, ellipses, lines, axis-aligned boxes, and polygons

License

Notifications You must be signed in to change notification settings

davidfig/intersects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

intersects

Collection of 2d collision/intersection checkers, supporting points, circles, circle circumferences (outline of circle), ellipses, lines, rectangles, and polygons (covex).

Live Example

https://davidfig.github.io/intersects/

Installation

npm i intersects

or

yarn add intersects

Usage

var intersects = require('intersects');

var intersected = intersects.boxBox(x1, y1, w1, h1, x2, y2, w2, h2);

or

var circleBox = require('intersects/circle-box');

var intersected = circleBox(x, y, r, x1, y1, w1, h1);

Alternative Usage

If you don't want to package the library using rollup, browserify, etc., you can also include the prepackaged library, which includes a global Intersects object:

<script src="https://unpkg.com/intersects/umd/intersects.min.js"></script>
<script>
    var intersected = Intersects.polygonPoint(points, x, y);
</script>

API


boxBox(x1, y1, w1, h1, x2, y2, w2, h2)

Box-box collision.

Param Meaning
x1 top-left corner of first box
y1 top-left corner of first box
w1 width of first box
h1 height of first box
x2 top-left corner of second box
y2 top-left corner of second box
w2 width of second box
h2 height of second box

boxCircle(xb, yb, wb, hb, xc, yc, rc)

Box-circle collision.

Param Meaning
xb top-left corner of box
yb top-left corner of box
wb width of box
hb height of box
xc center of circle
yc center of circle
rc radius of circle

boxEllipse(xb, yb, wb, hb, xe, ye, rex, rey)

Box-ellipse collision.

Param Meaning
xb top-left corner of box
yb top-left corner of box
wb width of box
hb height of box
xe center of ellipse
ye center of ellipse
rex x-radius of ellipse
rey y-radius of ellipse

boxLine(xb, yb, wb, hb, x1, y1, x2, y2)

Box-line collision.

Param Meaning
xb top-left corner of box
yb top-left corner of box
wb width of box
hb height of box
x1 first point of line
y1 first point of line
x2 second point of line
y2 second point of line

boxPoint(x1, y1, w1, h1, x2, y2)

Box-point collision.

Param Meaning
x1 top-left corner of box
y1 top-left corner of box
w1 width of box
h1 height of box
x2 point x
y2 point y

boxPolygon(xb, yb, wb, hb, points)

Box-polygon (convex) collision.

Param Meaning
xb top-left corner of box
yb top-left corner of box
wb width of box
hb height of box
points [x1, y1, x2, y2, ... xn, yn] of polygon

boxCircleOutline(xb, yb, wb, hb, xc, yc, rc)

Box (axis-oriented rectangle)-Circle outline (circumference of circle) collision.

Param Meaning
xb top-left corner of rectangle
yb top-left corner of rectangle
wb width of rectangle
hb height of rectangle
xc center of circle outline
yc center of circle outline
rc radius of circle outline

circleBox(xc, yc, rc, xb, yb, wb, hb)

Circle-box (axis-oriented rectangle) collision.

Param Meaning
xc center of circle
yc center of circle
rc radius of circle
xb top-left corner of rectangle
yb top-left corner of rectangle
wb width of rectangle
hb height of rectangle

circleCircle(x1, y1, r1, x2, y2, r2)

Circle-circle collision.

Param Meaning
x1 center of circle 1
y1 center of circle 1
r1 radius of circle 1
x2 center of circle 2
y2 center of circle 2
r2 radius of circle 2

circleEllipse(xc, yc, rc, xe, ye, rex, rey)

Circle-ellipse collision.

Param Meaning
x1 center of circle
y1 center of circle
r1 radius of circle
xe center of ellipse
ye center of ellipse
rex x-radius of ellipse
rey y-radius of ellipse

circleLine(xc, yc, rc, x1, y1, x2, y2)

Circle-line collision.

Param Meaning
xc center of circle
yc center of circle
rc radius of circle
x1 first point of line
y1 first point of line
x2 second point of line
y2 second point of line

circlePoint(x1, y1, r1, x2, y2)

Circle-point collision.

Param Meaning
x1 center of circle
y1 center of circle
r1 radius of circle
x2 point x
y2 point y

circlePolygon(xc, yc, rc, points)

Circle-polygon (convex) collision.

Param Meaning
xc center of circle
yc center of circle
rc radius of circle
points [x1, y1, x2, y2, ... xn, yn] of polygon

circleCircleOutline(xc, yc, rc, xco, yco, rco)

(Not available yet.) Circle-Circle outline (circumference of circle) collision.

Param Meaning
xc center of circle
yc center of circle
rc radius of circle
xco center of circle outline
yco center of circle outline
rco radius of circle outline

lineBox(x1, y1, x2, y2, xb, yb, wb, hb)

Line-box collision.

Param Meaning
x1 point 1 of line
y1 point 1 of line
x2 point 2 of line
y2 point 2 of line
xb top-left of box
yb top-left of box
wb width of box
hb height of box

lineCircle(x1, y1, x2, y2, xc, yc, rc)

Line-circle collision.

Param Meaning
x1 point 1 of line
y1 point 1 of line
x2 point 2 of line
y2 point 2 of line
xc center of circle
yc center of circle
rc radius of circle

lineEllipse(x1, y1, x2, y2, xe, ye, rex, rey)

Line-ellipse collision.

Param Meaning
x1 point 1 of line
y1 point 1 of line
x2 point 2 of line
y2 point 2 of line
xe center of ellipse
ye center of ellipse
rex x-radius of ellipse
rey y-radius of ellipse

lineLine(x1, y1, x2, y2, x3, y3, x4, y4, thickness1, thickness2)

Line-line collision.

Param Meaning
x1 first point in line 1
y1 first point in line 1
x2 second point in line 1
y2 second point in line 1
x3 first point in line 2
y3 first point in line 2
x4 second point in line 2
y4 second point in line 2
thickness1 of line 1 (the line is centered in its thickness--see demo)
thickness2 of line 2 (the line is centered in its thickness--see demo)

linePolygon(x1, y1, x2, y2, points, tolerance)

Line-polygon (convex) collision.

Param Meaning
x1 point 1 of line
y1 point 1 of line
x2 point 2 of line
y2 point 2 of line
points [x1, y1, x2, y2, ... xn, yn] of polygon
tolerance maximum distance of point to polygon's edges that triggers collision (see pointLine)

linePoint(x1, y1, x2, y2, xp, yp)

Line-point collision.

Param Meaning
x1 point 1 of line
y1 point 1 of line
x2 point 2 of line
y2 point 2 of line
xp point x
yp point y

lineCircleOutline(x1, y1, x2, y2, xc, yc, rc)

Line-Circle outline (circumference of circle) collision.

Param Meaning
x1 first point of line
y1 first point of line
x2 second point of line
y2 second point of line
xc center of circle outline
yc center of circle outline
rc radius of circle outline

pointBox(x1, y1, xb, yb, wb, hb)

Point-box collision.

Param Meaning
x1 point x
y1 point y
xb top-left corner of box
yb top-left corner of box
wb width of box
hb height of box

pointPolygon(x1, y1, points)

Point-polygon (convex) collision.

Param Meaning
x1 point x
y1 point y
points [x1, y1, x2, y2, ... xn, yn] of polygon

pointLine(xp, yp, x1, y1, x2, y2)

point-line collision.

Param Meaning
xp point x
yp point y
x1 point 1 of line
y1 point 1 of line
x2 point 2 of line
y2 point 2 of line

pointCircle(xp, yp, xc, yc, rc)

point-circle collision.

Param Meaning
xp point x
yp point y
xc center of circle
yc center of circle
rc radius of circle

pointEllipse(xp, yp, xe, ye, rex, rey)

point-ellipse collision.

Param Meaning
xp point x
yp point y
xe center of circle
ye center of circle
rex x-radius of circle
rey y-radius of circle

pointCircleOutline(x2, y2, x1, y1, r1)

Point-Circle outline (circumference of circle) collision.

Param Meaning
x1 center of circle outline
y1 center of circle outline
r1 radius of circle outline
x2 point x
y2 point y

polygonBox(points, x, y, w, h)

Polygon (convex)-box collision.

Param Meaning
points [x1, y1, x2, y2, ... xn, yn] of polygon
x of box
y of box
w of box
h of box

polygonCircle(points, xc, yc, rc)

Polygon (convex)-circle collision.

Param Meaning
points [x1, y1, x2, y2, ... xn, yn] of polygon
xc center of circle
yc center of circle
rc radius of circle

polygonEllipse(points, xe, ye, rex, rey)

Polygon (convex)-ellipse collision.

Param Meaning
points [x1, y1, x2, y2, ... xn, yn] of polygon
xe center of ellipse
ye center of ellipse
rex x-radius of ellipse
rey y-radius of ellipse

polygonLine(points, x1, y1, x2, y2, tolerance)

Polygon (convex)-line collisions.

Param Meaning
points [x1, y1, x2, y2, ... xn, yn] of polygon
x1 first point in line
y1 first point in line
x2 second point in line
y2 second point in line
tolerance maximum distance of point to polygon's edges that triggers collision (see pointLine)

polygonPoint(points, x, y)

Polygon (convex)-point collision.

Param Meaning
points [x1, y1, x2, y2, ... xn, yn] of polygon
x of point
y of point

polygonPolygon(points1, points2)

Polygon (convex)-polygon (convex) collision.

Param Meaning
points1 [x1, y1, x2, y2, ... xn, yn] of first polygon
points2 [x1, y1, x2, y2, ... xn, yn] of second polygon

ellipseBox(xe, ye, rex, rey, x, y, w, h)

Ellipse-box collision.

Param Meaning
xe center of ellipse
ye center of ellipse
rex x-radius of ellipse
rey y-radius of ellipse
x of box
y of box
w of box
h of box

ellipseCircle(xe, ye, rex, rey, xc, yc, rc)

Ellipse-circle collision.

Param Meaning
xe center of ellipse
ye center of ellipse
rex x-radius of ellipse
rey y-radius of ellipse
xc center of circle
yc center of circle
rc radius of circle

ellipseEllipse(x1, y1, r1x, r1y, x2, y2, r2x, r2y)

Ellipse-ellipse collision.

Param Meaning
x1 center of ellipse 1
y1 center of ellipse 1
r1x x-radius of ellipse 1
r1y y-radius of ellipse 1
x2 center of ellipse 2
y2 center of ellipse 2
r2x x-radius of ellipse 2
r2y y-radius of ellipse 2

ellipseLine(xe, ye, rex, rey, x1, y1, x2, y2)

Ellipse-line collisions.

Param Meaning
xe center of ellipse
ye center of ellipse
rex x-radius of ellipse
rey y-radius of ellipse
x1 first point in line
y1 first point in line
x2 second point in line
y2 second point in line

ellipsePoint(xe, ye, rex, rey, x, y)

Ellipse-point collision.

Param Meaning
xe center of ellipse
ye center of ellipse
rex x-radius of ellipse
rey y-radius of ellipse
x of point
y of point

ellipsePolygon(xe, ye, rex, rey, points2)

Ellipse-polygon (convex) collision.

Param Meaning
xe center of ellipse
ye center of ellipse
rex x-radius of ellipse
rey y-radius of ellipse
xe center of ellipse
ye center of ellipse
rex x-radius of ellipse
rey y-radius of ellipse

circleOutlineBox(xc, yc, rc, xb, yb, wb, hb)

Circle outline (circumference of circle)-box (axis-oriented rectangle) collision.

Param Meaning
xc center of circle outline
yc center of circle outline
rc radius of circle outline
xb top-left corner of rectangle
yb top-left corner of rectangle
wb width of rectangle
hb height of rectangle

circleOutlineCircle(xco, yco, rco, xc, yc, rc)

Circle outline (circumference of circle)-circle collision.

Param Meaning
xco center of circle outline
yco center of circle outline
rco radius of circle outline
xc center of circle
yc center of circle
rc radius of circle

circleOutlineEllipse(xc, yc, rc, xe, ye, rex, rey)

(Not available yet.) Circle outline (circumference of circle)-ellipse collision.

Param Meaning
x1 center of circle outline
y1 center of circle outline
r1 radius of circle outline
xe center of ellipse
ye center of ellipse
rex x-radius of ellipse
rey y-radius of ellipse

circleOutlineLine(xc, yc, rc, x1, y1, x2, y2)

Circle outline (circumference of circle)-line collision.

Param Meaning
xc center of circle outline
yc center of circle outline
rc radius of circle outline
x1 first point of line
y1 first point of line
x2 second point of line
y2 second point of line

circleOutlinePoint(x1, y1, r1, x2, y2)

Circle outline (circumference of circle)-point collision.

Param Meaning
x1 center of circle outline
y1 center of circle outline
r1 radius of circle outline
x2 point x
y2 point y

circleOutlinePolygon(xc, yc, rc, points)

(Not available yet.) Circle outline (circumference of circle)-polygon (convex) collision.

Param Meaning
xc center of circle outline
yc center of circle outline
rc radius of circle outline
points [x1, y1, x2, y2, ... xn, yn] of polygon

License

MIT License

(c) 2019 YOPEY YOPEY LLC by David Figatner

About

a simple collection of 2d collision/intersects functions. Supports points, circles, ellipses, lines, axis-aligned boxes, and polygons

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published