vis-utils
Version:
Utility functions for data visualization
26 lines (22 loc) • 867 B
JavaScript
;
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];
}