@technobuddha/library
Version:
A large library of useful functions
24 lines • 1.36 kB
JavaScript
import { modulo } from "./modulo.js";
import { toAngle } from "./to-angle.js";
/**
* Normalizes an angle to be in range 0-1 turns.
*
* Angles outside this range will be normalized to be the equivalent angle with that range.
* Angles are always returned as radians.
* @param angle - Angle
* @param options - see {@link UnitOptions}
* @returns Standardized angle in radians.
* @example
* ```typescript
* normalizeAngle(Math.PI); // π
* normalizeAngle(2 * Math.PI); // 0
* normalizeAngle(180, 'degrees'); // π
* normalizeAngle(540, 'degrees'); // π
* ```
* @group Geometry
* @category Angle
*/
export function normalizeAngle(angle, { unit = 'radians' } = {}) {
return modulo(toAngle(angle, unit, 'radians'), Math.PI * 2) + 0;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLWFuZ2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25vcm1hbGl6ZS1hbmdsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEM7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFhLEVBQUUsRUFBRSxJQUFJLEdBQUcsU0FBUyxLQUFrQixFQUFFO0lBQ2xGLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xFLENBQUMifQ==