percentdim
v1.0.0
Published
Calculates the percentage volume difference between two N-dimensional arrays by comparing their total product (i.e., volume).
Downloads
26
Maintainers
Readme
percentdim
percentDim calculates the percentage volume difference between two N-dimensional arrays by comparing their total product (i.e., volume). It’s atomic, pure, and performant.
Details
- Works with any number of dimensions – 2D, 3D, 4D, and beyond.
- Computes relative percentage – How much
dimsA
is ofdimsB
in a 0-100% scale. - Pure & atomic function – Ideal for composable utility pipelines.
- No dependencies – Lightweight and efficient.
Install
npm install percentdim
Usage
import percentDim from 'percentdim';
const dimsA = [1920, 1080];
const dimsB = [3840, 2160];
// ✅ Compute how much dimsA is of dimsB
console.log(percentDim(dimsA, dimsB));
// 25 (i.e., dimsA is 25% of dimsB)
// ✅ 3D Example
console.log(percentDim([100, 100, 100], [200, 200, 200]));
// 12.5 (i.e., first box is 12.5% of the second)
🔧 API
percentDim(dimsA: number[], dimsB: number[]): number
Calculates the percentage of dimsA
relative to dimsB
.
dimsA
– The first set of dimensions.dimsB
– The second set of dimensions (must have the same length).- Returns – A percentage value (
0-100
).
⚠️ Errors
Throws an error if:
- The two arrays don’t have the same length.
Cheatsheet Patterns
Convert Percentage to Decimal
const percent = percentDim([1920, 1080], [3840, 2160]); // 25
const decimal = percent / 100;
console.log(decimal); // 0.25
Related Packages
- https://github.com/alexstevovich/capdim – Caps total volume while keeping proportions.
- https://github.com/alexstevovich/fitdim – Scales an axis to a fixed value while preserving proportions.
- https://github.com/alexstevovich/normalizedim – Normalizes one axis while keeping proportions.
These links might be suffixed with "-node" in the future if conflicts arise.
Links
Development Homepage
https://github.com/alexstevovich/percentdim
This link might be suffixed with "-node" in the future if conflicts arise.
License
Licensed under the Apache License 2.0.