Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
radial-index
Advanced tools
compute radial order indices from unordered Cartesian coordinates relative to the origin or a specified point
Compute radial order indices from unordered Cartesian coordinates relative to the origin or a specified point.
$ 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.
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 (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.
[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]
npm install radial-index
npm test
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.
FAQs
compute radial order indices from unordered Cartesian coordinates relative to the origin or a specified point
We found that radial-index demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.