Giter Site home page Giter Site logo

point-geometry's Introduction

point-geometry

build status Coverage Status

a point geometry with transforms

Point(x, y)

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

Parameters

parameter type description
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.

Example

var 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(p)

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

Parameters

parameter type description
p Point the other point

Returns Point, output point

sub(p)

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

Parameters

parameter type description
p Point the other point

Returns Point, output point

multByPoint(p)

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

Parameters

parameter type description
p Point the other point

Returns Point, output point

divByPoint(p)

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

Parameters

parameter type description
p Point the other point

Returns Point, output point

mult(k)

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

Parameters

parameter type description
k Point factor

Returns Point, output point

div(k)

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

Parameters

parameter type description
k Point factor

Returns Point, output point

rotate(a)

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

Parameters

parameter type description
a Number angle to rotate around, in radians

Returns Point, output point

rotateAround(a, p)

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

Parameters

parameter type description
a Number angle to rotate around, in radians
p Point Point to rotate around

Returns Point, output point

matMult(m)

Multiply this point by a 4x1 transformation matrix

Parameters

parameter type description
m Array.<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 magitude 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(other)

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

Parameters

parameter type description
other Point the other point

Returns boolean, whether the points are equal

dist(p)

Calculate the distance from this point to another point

Parameters

parameter type description
p Point the other point

Returns Number, distance

distSqr(p)

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

Parameters

parameter type description
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(b)

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

Parameters

parameter type description
b Point the other point

Returns Number, angle

angleWith(b)

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

Parameters

parameter type description
b Point the other point

Returns Number, angle

angleWithSep(x, y)

Find the angle of the two vectors, solving the formula for the cross product a x b = |a||b|sin(θ) for θ.

Parameters

parameter type description
x Number the x-coordinate
y Number the y-coordinate

Returns Number, the angle in radians

convert(a)

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

Parameters

parameter type description
a Array.<Number>,Point any kind of input value

Example

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

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

Installation

Requires nodejs.

$ npm install @mapbox/point-geometry

Tests

$ npm test

point-geometry's People

Contributors

flippmoke avatar jlaine avatar karolselak avatar tmcw avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.