@ue-too/board
Version:
<h1 align="center"> uē-tôo </h1> <p align="center"> pan, zoom, rotate, and more with your html canvas. </p>
38 lines (37 loc) • 1.45 kB
TypeScript
/**
* Calculates the order of magnitude (power of 10) of a number.
*
* @param value - The number to analyze
* @returns The power of 10 that best represents this value's magnitude
*
* @remarks
* The order of magnitude helps determine appropriate tick spacing for rulers
* and grids. For example:
* - Value 1234 has order 3 (10^3 = 1000)
* - Value 0.056 has order -2 (10^-2 = 0.01)
*
* The calculation finds the largest power of 10 that is less than or equal
* to the absolute value.
*
* Edge cases:
* - Returns 0 for values <= 0
* - For values >= 1: Counts powers of 10 until reaching the value
* - For values < 1: Counts negative powers of 10 until reaching the value
*
* This is used by drawing utilities to automatically scale tick marks and
* grid lines appropriately for different zoom levels.
*
* @example
* ```typescript
* calculateOrderOfMagnitude(1500); // 3 (between 10^3=1000 and 10^4=10000)
* calculateOrderOfMagnitude(85); // 1 (between 10^1=10 and 10^2=100)
* calculateOrderOfMagnitude(7); // 0 (between 10^0=1 and 10^1=10)
* calculateOrderOfMagnitude(0.05); // -2 (between 10^-2=0.01 and 10^-1=0.1)
* calculateOrderOfMagnitude(0); // 0 (edge case)
* calculateOrderOfMagnitude(-100); // 0 (negative edge case)
* ```
*
* @category Drawing Utilities
* @see {@link drawRuler} for usage in ruler drawing
*/
export declare function calculateOrderOfMagnitude(value: number): number;