a point geometry with transforms

Requires nodejs.

```
$ npm install @mapbox/point-geometry
```

A standalone point geometry with useful accessor, comparison, and modification methods.

`x`

**Number**the x-coordinate. this could be longitude or screen pixels, or any other sort of unit.`y`

**Number**the y-coordinate. this could be latitude or screen pixels, or any other sort of unit.

```
var point = new Point(-77, 38);
```

Clone this point, returning a new point that can be modified without affecting the old one.

Returns **Point** the clone

Add this point's x & y coordinates to another point, yielding a new point.

`p`

**Point**the other point

Returns **Point** output point

Subtract this point's x & y coordinates to from point, yielding a new point.

`p`

**Point**the other point

Returns **Point** output point

Multiply this point's x & y coordinates by point, yielding a new point.

`p`

**Point**the other point

Returns **Point** output point

Divide this point's x & y coordinates by point, yielding a new point.

`p`

**Point**the other point

Returns **Point** output point

Multiply this point's x & y coordinates by a factor, yielding a new point.

`k`

**Point**factor

Returns **Point** output point

Divide this point's x & y coordinates by a factor, yielding a new point.

`k`

**Point**factor

Returns **Point** output point

Rotate this point around the 0, 0 origin by an angle a, given in radians

`a`

**Number**angle to rotate around, in radians

Returns **Point** output point

Rotate this point around p point by an angle a, given in radians

Returns **Point** output point

Multiply this point by a 4x1 transformation matrix

Returns **Point** output point

Calculate this point but as a unit vector from 0, 0, meaning that the distance from the resulting point to the 0, 0 coordinate will be equal to 1 and the angle from the resulting point to the 0, 0 coordinate will be the same as before.

Returns **Point** unit vector point

Compute a perpendicular point, where the new y coordinate is the old x coordinate and the new x coordinate is the old y coordinate multiplied by -1

Returns **Point** perpendicular point

Return a version of this point with the x & y coordinates rounded to integers.

Returns **Point** rounded point

Return the magnitude of this point: this is the Euclidean distance from the 0, 0 coordinate to this point's x and y coordinates.

Returns **Number** magnitude

Judge whether this point is equal to another point, returning true or false.

`other`

**Point**the other point

Returns **boolean** whether the points are equal

Calculate the distance from this point to another point

`p`

**Point**the other point

Returns **Number** distance

Calculate the distance from this point to another point, without the square root step. Useful if you're comparing relative distances.

`p`

**Point**the other point

Returns **Number** distance

Get the angle from the 0, 0 coordinate to this point, in radians coordinates.

Returns **Number** angle

Get the angle from this point to another point, in radians

`b`

**Point**the other point

Returns **Number** angle

Get the angle between this point and another point, in radians

`b`

**Point**the other point

Returns **Number** angle

Construct a point from an array if necessary, otherwise if the input is already a Point, or an unknown type, return it unchanged

`a`

**(Array[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) | Point)**any kind of input value

```
// this
var point = Point.convert([0, 1]);
// is equivalent to
var point = new Point(0, 1);
```

Returns **Point** constructed point, or passed-through value.

Great Documentation0

Easy to Use0

Performant0

Highly Customizable0

Bleeding Edge0

Responsive Maintainers0

Poor Documentation0

Hard to Use0

Slow0

Buggy0

Abandoned0

Unwelcoming Community0

No reviews found

Be the first to rateNo alternatives found

No tutorials found

Add a tutorial