UNPKG

@technobuddha/library

Version:
24 lines 1.36 kB
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==