{"_id":"2d-point","_rev":"6-03eaaa1c90ddd878dfc5bf6bfc17a038","name":"2d-point","description":"2D point object","dist-tags":{"latest":"1.0.0"},"versions":{"0.8.0":{"name":"2d-point","version":"0.8.0","description":"2D point object","main":"index.js","scripts":{"test":"minijasminenode2 test.js --verbose","lint":"jslint index.js && ./node_modules/.bin/jslint --sloppy --predef it --predef expect --predef describe --predef beforeEach test.js"},"repository":{"type":"git","url":"git://github.com/CrowdHailer/point.git"},"keywords":["2D","point","geometry","svg","bbox","rectangles"],"author":{"name":"Peter Saxton"},"license":"MIT","bugs":{"url":"https://github.com/CrowdHailer/point/issues"},"homepage":"https://github.com/CrowdHailer/point","devDependencies":{"minijasminenode2":"^1.0.0","jslint":"^0.6.2"},"_id":"2d-point@0.8.0","dist":{"shasum":"2ffe2733a2bc01d5b9f5c0d4a630ece965fdbef1","tarball":"https://registry.npmjs.org/2d-point/-/2d-point-0.8.0.tgz","integrity":"sha512-HT1zD8HQbwaruI9Ch1rQRzGzR8Z0M0dmK+DWsqFqemUJJ82egPL72QfCgb5wTcwPY0mAlaf5KzQA6+BNB+n71A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE1nhtvgSmTGe/w7NdrtoGQae2UNSC/uK16SEQCAIiwXAiASkgOTizP+ljtqpTXaSvb6FUTmymWwTgx6TceOoi8MbQ=="}]},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"crowdhailer","email":"petersaxton@londonlayout.co.uk"},"maintainers":[{"name":"crowdhailer","email":"petersaxton@londonlayout.co.uk"}]},"1.0.0":{"name":"2d-point","version":"1.0.0","description":"2D point object","main":"index.js","scripts":{"test":"minijasminenode2 test.js --verbose","lint":"jslint index.js && ./node_modules/.bin/jslint --sloppy --predef it --predef expect --predef describe --predef beforeEach test.js"},"repository":{"type":"git","url":"git://github.com/CrowdHailer/point.git"},"keywords":["2D","point","geometry","svg","bbox","rectangles"],"author":{"name":"Peter Saxton"},"license":"MIT","bugs":{"url":"https://github.com/CrowdHailer/point/issues"},"homepage":"https://github.com/CrowdHailer/point","devDependencies":{"minijasminenode2":"^1.0.0","jslint":"^0.6.2"},"_id":"2d-point@1.0.0","dist":{"shasum":"4264b55013c366cd3b2e026b5710d80a3eadbe1b","tarball":"https://registry.npmjs.org/2d-point/-/2d-point-1.0.0.tgz","integrity":"sha512-+yx0BvTLZ4H3Ri1TM8VxEIhTLjsn+MlFDpf9Z/jHSiQM4TxB75Sfl89GMpMro6pr+4GHvlMX3RIw8V/17W5Keg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHig9hsJ90YyP2b1KjjWqOKVtiVbL3YUQpEF6gQIRa8nAiEAy2xCzQapAdJwpOxD+R5CtE7xvMyIV9JEMqmUZPfGHDM="}]},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"crowdhailer","email":"petersaxton@londonlayout.co.uk"},"maintainers":[{"name":"crowdhailer","email":"petersaxton@londonlayout.co.uk"}]}},"readme":"2D Point\n========\n\n##### Create and manipulate 2d point object.\n\nInstallation\n============\n\nAvailable as a node package. To install use\n\n```\n$ npm install 2d-point\n```\n\nMethods\n=======\n\nThe following methods are available.\n- [create](#user-content-create-pointcreatex-y)\n- [add](#user-content-add-pointaddp-q)\n- [multiply](#user-content-subtract-pointsubtractp-q)\n- [subtract](#user-content-multiply-pointmultiplya-p)\n- [fitWithin](#user-content-fitwithin-pointfitwithincontainer-vector)\n- [fitOnce](#user-content-fitonce-pointfitwithincontainer-vector)\n\nUse\n===\n\n#### create `Point.create(x, y)`\nCreates a frozen 2D point. Defaults to origin coordinate if no arguments given.\n\n```js\nvar Point = require('2d-point');\n\nvar pt = Point.create(2, 4);\n// => {x: 2, y: 4}\n\nvar origin = Point.create();\n// => {x: 0, y: 0}\n```\n\n#### add `Point.add(p, q)`\nVector add two points returning a new point.\n\n```js\nvar p = Point.create(2, 3);\nvar q = Point.create(4, 5);\n\nPoint.add(p, q);\n// => {x: 6, y: 8}\n```\n\n#### subtract `Point.subtract(p, q)`\nVector subtract two points returning a new point.\n\n```js\nvar p = Point.create(2, 3);\nvar q = Point.create(4, 5);\n\nPoint.subtract(p, q);\n// => {x: -2, y: -2}\n```\n\n#### multiply `Point.multiply(a, p)`\nVector scalar multiply a point returning a new point.\n\n```js\nvar a = 3;\nvar p = Point.create(2, 3);\n\nPoint.multiply(a, p);\n// => {x: 6, y: 9}\n```\n\n#### fitWithin `Point.fitWithin(container, vector)`\nScales vector to fit just within the bounding box of the container point.\n\n```js\nvar container = Point.create(2, 2);\nvar landscape = Point.create(8, 4);\nvar portrait = Point.create(0.5, 1);\n\nPoint.fitWithin(container, landscape);\n// => {x: 2, y: 1}\n\nPoint.fitWithin(container, portrait);\n// => {x: 1, y: 2}\n```\n\n#### fitOnce `Point.fitWithin(container, vector)`\nScales vector to fit just within on dimension of the bounding box of the container point.\n\n```js\nvar container = Point.create(2, 2);\nvar landscape = Point.create(8, 4);\nvar portrait = Point.create(0.5, 1);\n\nPoint.fitWithin(container, landscape);\n// => {x: 4, y: 2}\n\nPoint.fitWithin(container, portrait);\n// => {x: 2, y: 4}\n```\n\n## Considered extensions \n\n- fit within to deal with zeros ?\n- negate ?\n- Curry methods ?\n- comparison methods ?\n- conditionally make svg point if available ? No\n- tests in browser ? No\n- dot product ?\n- convert to radial ? No\n- furthest ?\n- nearest ?\n","maintainers":[{"name":"crowdhailer","email":"petersaxton@londonlayout.co.uk"}],"time":{"modified":"2022-06-12T14:06:52.071Z","created":"2014-08-21T07:50:21.856Z","0.8.0":"2014-08-21T07:50:21.856Z","1.0.0":"2014-08-22T07:56:48.886Z"},"homepage":"https://github.com/CrowdHailer/point","keywords":["2D","point","geometry","svg","bbox","rectangles"],"repository":{"type":"git","url":"git://github.com/CrowdHailer/point.git"},"author":{"name":"Peter Saxton"},"bugs":{"url":"https://github.com/CrowdHailer/point/issues"},"license":"MIT","readmeFilename":"README.md"}