a point geometry with transforms
npm install @mapbox/point-geometryA Point class for representing point geometry with useful utility methods.
``sh`
$ npm install @mapbox/point-geometry
A standalone point geometry with useful accessor, comparison, and
modification methods.
#### Parameters
* 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.
#### Examples
`javascript`
const point = new Point(-77, 38);
#### clone
Clone this point, returning a new point that can be modified
without affecting the old one.
Returns Point the clone
#### add
Add this point's x & y coordinates to another point,
yielding a new point.
##### Parameters
* p Point the other point
Returns Point output point
#### sub
Subtract this point's x & y coordinates to from point,
yielding a new point.
##### Parameters
* p Point the other point
Returns Point output point
#### multByPoint
Multiply this point's x & y coordinates by point,
yielding a new point.
##### Parameters
* p Point the other point
Returns Point output point
#### divByPoint
Divide this point's x & y coordinates by point,
yielding a new point.
##### Parameters
* p Point the other point
Returns Point output point
#### mult
Multiply this point's x & y coordinates by a factor,
yielding a new point.
##### Parameters
* k number factor
Returns Point output point
#### div
Divide this point's x & y coordinates by a factor,
yielding a new point.
##### Parameters
* k number factor
Returns Point output point
#### rotate
Rotate this point around the 0, 0 origin by an angle a,
given in radians
##### Parameters
* a number angle to rotate around, in radians
Returns Point output point
#### rotateAround
Rotate this point around p point by an angle a,
given in radians
##### Parameters
* a number angle to rotate around, in radiansp
* Point Point to rotate around
Returns Point output point
#### matMult
Multiply this point by a 4x1 transformation matrix
##### Parameters
* m \[number, number, number, number] transformation matrix
Returns Point output point
#### unit
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
#### perp
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
#### round
Return a version of this point with the x & y coordinates
rounded to integers.
Returns Point rounded point
#### mag
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
#### equals
Judge whether this point is equal to another point, returning
true or false.
##### Parameters
* other Point the other point
Returns boolean whether the points are equal
#### dist
Calculate the distance from this point to another point
##### Parameters
* p Point the other point
Returns number distance
#### distSqr
Calculate the distance from this point to another point,
without the square root step. Useful if you're comparing
relative distances.
##### Parameters
* p Point the other point
Returns number distance
#### angle
Get the angle from the 0, 0 coordinate to this point, in radians
coordinates.
Returns number angle
#### angleTo
Get the angle from this point to another point, in radians
##### Parameters
* b Point the other point
Returns number angle
#### angleWith
Get the angle between this point and another point, in radians
##### Parameters
* b Point the other point
Returns number angle
#### angleWithSep
Find the angle of the two vectors, solving the formula for
the cross product a x b = |a||b|sin(θ) for θ.
##### Parameters
* x number the x-coordinatey
* number the y-coordinate
Returns number the angle in radians
#### convert
Construct a point from an array if necessary, otherwise if the input
is already a Point, or an unknown type, return it unchanged
##### Parameters
* a (\[number, number] | Point) any kind of input value
##### Examples
`javascript``
// this
var point = Point.convert([0, 1]);
// is equivalent to
var point = new Point(0, 1);
Returns Point constructed point, or passed-through value.