UNPKG

vis-utils

Version:

Utility functions for data visualization

26 lines (22 loc) 867 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = rotate; var X = 0; var Y = 1; /** * Rotate a point ([x, y]) around an origin ([x, y]) by theta radians * * @param {Number[]} point [x, y] * @param {Number} thetaRadians How many radians to rotate the point around origin * @param {Number[]} [origin] [x, y] (defaults to [0, 0]) * * @return {Number[]} The rotated point [x, y] */ function rotate(point, thetaRadians) { var origin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [0, 0]; var rotatedEndX = origin[X] + (point[X] - origin[X]) * Math.cos(thetaRadians) - (point[Y] - origin[Y]) * Math.sin(thetaRadians); var rotatedEndY = origin[Y] + (point[X] - origin[X]) * Math.sin(thetaRadians) + (point[Y] - origin[Y]) * Math.cos(thetaRadians); return [rotatedEndX, rotatedEndY]; }