New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

radial-index

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

radial-index

compute radial order indices from unordered Cartesian coordinates relative to the origin or a specified point

  • 0.1.1
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

radial-index

Compute radial order indices from unordered Cartesian coordinates relative to the origin or a specified point.

Install

npm install radial-index

Basic usage

$ var ri = require('radial-index')
$ var points = [
    [-10, -26],
    [-11, 18],
    [11, 27]
  ];
$ console.log(ri.getIndicesFromPoints(points));
[1, 2, 0]

Note that the response array provides the indices in the same sequence as the original points argument.

Options

getIndicesFromPoints optionally takes a configuration object as its second argument. That configuration object provides three additional parameters to getIndicesFromPoints.

{
    center:    Array. Format: [x, y]. Set the coordinate around which the radial indexing will occur.
    ccw:       Boolean. (Any truthy value.) Compute indices with a counter-clockwise rotation.
    rotate:    Number. From -360 to 360. The degree offset from the positive y-axis to begin the indexing rotation.
}

center is set to the origin [0, 0] unless otherwise specified. Also by default, getIndicesFromPoints indexes points in a clockwise fashion starting from the positive y-axis as follows: start at the 12 o'clock position moving to the right. To override this behavior and rotate in a counter-clockwise fashion, set ccw to true. Finally, rotate controls the angle from which the indexing movement should begin--by default, the positive y-axis. Setting rotate to 90, for example, would start the indexing at the positive x-axis instead.

Examples

         [y]
       (0, 100)
          |
          |  A
          |
----------+---------- (100, 0) [x]
 C        |
          |     B
          |

For the following examples, assume that A = [A.x, A.y], B = [B.x, B.y], etc. By default, getIndicesFromPoints([A, B, C]) would return [0, 1, 2] because the indexer would start from [y] and sweep clockwise hitting A, then B, then C. That is:

$ ri.getIndicesFromPoints([A, B, C])
[0, 1, 2]

Other examples:

$ ri.getIndicesFromPoints([A, B, C], {ccw: true})
[2, 1, 0]

$ ri.getIndicesFromPoints([A, B, C], {rotate: 90})
[2, 0, 1]

$ ri.getIndicesFromPoints([A, B, C], {ccw: true, rotate: 270})
[2, 1, 0]

$ ri.getIndicesFromPoints([A, B, C], {center: [-500, -500]})
[1, 2, 0]

Tests

npm test

Cautions

Calculating the radial component of a polar coordinate relies on trignometric functions that often produce extended floating point numbers. The accuracy of indexing is therefore subject to JavaScript's floating point precision limitations. For general information about floating point issues see the floating point guide.

Contributors

License

© 2013 Agile Diagnosis, Inc MIT

Keywords

FAQs

Package last updated on 11 Feb 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc