2d-point

2D point object

Usage no npm install needed!

<script type="module">
  import dPoint from 'https://cdn.skypack.dev/2d-point';
</script>

README

2D Point

Create and manipulate 2d point object.

Installation

Available as a node package. To install use

$ npm install 2d-point

Methods

The following methods are available.

Use

create Point.create(x, y)

Creates a frozen 2D point. Defaults to origin coordinate if no arguments given.

var Point = require('2d-point');

var pt = Point.create(2, 4);
// => {x: 2, y: 4}

var origin = Point.create();
// => {x: 0, y: 0}

add Point.add(p, q)

Vector add two points returning a new point.

var p = Point.create(2, 3);
var q = Point.create(4, 5);

Point.add(p, q);
// => {x: 6, y: 8}

subtract Point.subtract(p, q)

Vector subtract two points returning a new point.

var p = Point.create(2, 3);
var q = Point.create(4, 5);

Point.subtract(p, q);
// => {x: -2, y: -2}

multiply Point.multiply(a, p)

Vector scalar multiply a point returning a new point.

var a = 3;
var p = Point.create(2, 3);

Point.multiply(a, p);
// => {x: 6, y: 9}

fitWithin Point.fitWithin(container, vector)

Scales vector to fit just within the bounding box of the container point.

var container = Point.create(2, 2);
var landscape = Point.create(8, 4);
var portrait = Point.create(0.5, 1);

Point.fitWithin(container, landscape);
// => {x: 2, y: 1}

Point.fitWithin(container, portrait);
// => {x: 1, y: 2}

fitOnce Point.fitWithin(container, vector)

Scales vector to fit just within on dimension of the bounding box of the container point.

var container = Point.create(2, 2);
var landscape = Point.create(8, 4);
var portrait = Point.create(0.5, 1);

Point.fitWithin(container, landscape);
// => {x: 4, y: 2}

Point.fitWithin(container, portrait);
// => {x: 2, y: 4}

Considered extensions

  • fit within to deal with zeros ?
  • negate ?
  • Curry methods ?
  • comparison methods ?
  • conditionally make svg point if available ? No
  • tests in browser ? No
  • dot product ?
  • convert to radial ? No
  • furthest ?
  • nearest ?