# line-intersect

3.0.0 • Public • Published

# line-intersect

Line vs line, point vs line in 2D space

Math is mostly from here.

## Install

`npm install line-intersect`

## API

es modules

```import {
checkIntersection,
colinearPointWithinSegment
} from 'line-intersect';```

commonjs modules

```const {
checkIntersection,
colinearPointWithinSegment
} = require('line-intersect');```

### checkIntersection(x1, y1, x2, y2, x3, y3, x4, y4)

Given a line segment from (x1, y1) to (x2, y2) and line segment from (x3, y3) to (x4, y4), check if the line segments intersect.

#### Parameters

• x1, y1, x2, y2 - 1st line segment
• x3, y3, x4, y4 - 2nd line segment

All params are Numbers and are required.

#### Returns

A read-only Object that looks like

```{
type: 'none' | 'parallel' | 'colinear'
}

// or

{
type: 'intersecting',
point: {
x: number,
y: number
}
}```

`point` is only exists when `type == 'intersecting'`

`type` What it means Are the line segments touching?
none Line segments are not intersecting No
parallel Line segments are not intersecting but they are parallel to eachother No
colinear Line segments are on the same line and may be overlapping. Use `colinearPointWithinSegment()` to check Maybe
intersecting Line segments intersect at exactly one point Yes

### colinearPointWithinSegment(px, py, x1, y1, x2, y2)

Given a point (px, py) that is on the same line as line segment (x1, y1) to (x2, y2), check if the point is within the line segment.

#### Parameters

• px, py - Point to check
• x1, y1, x2, y2 - Line segment

All params are Numbers and are required.

#### Returns

`true` if point is within the line segment, `false` otherwise.

MIT

## Package Sidebar

### Install

`npm i line-intersect`

### Repository

github.com/psalaets/line-intersect

### Homepage

github.com/psalaets/line-intersect

5,779

3.0.0

MIT

11.4 kB

11