@technobuddha/library
Version:
A large library of useful functions
19 lines • 1.39 kB
JavaScript
import { toAngle } from "./to-angle.js";
/**
* Convert polar coordinates to cartesian
* @param point - radius, angle in radians (zero points in +X direction).
* @param options - see {@link UnitOptions}
* @returns Object containing the X and Y-distance for the angle and radius.
* @example
* ```typescript
* toCartesian({ r: 1, φ: Math.PI / 4 }); // { x: √2/2, y: √2/2 }
* toCartesian({ r: 1, φ: 90 }, 'degrees'); // { x: 0, y: 1 }
* ```
* @group Geometry
* @category Coordinates
*/
export function toCartesian(point, { unit = 'radians' } = {}) {
const angle = toAngle(point.φ, unit, 'radians');
return { x: point.r * Math.cos(angle), y: point.r * Math.sin(angle) };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8tY2FydGVzaWFuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3RvLWNhcnRlc2lhbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBWSxFQUFFLEVBQUUsSUFBSSxHQUFHLFNBQVMsS0FBa0IsRUFBRTtJQUM5RSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFaEQsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0FBQ3hFLENBQUMifQ==