UNPKG

vue-poster-editor

Version:

A poster editor based on Vue.js

73 lines (65 loc) 2.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = { clamp: function clamp(val) { var lower = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -Infinity; var upper = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Infinity; return Math.max(lower, Math.min(val, upper)); }, getVectorRotator: function getVectorRotator(a) { var _ref = [Math.sin(a / 180 * Math.PI), Math.cos(a / 180 * Math.PI)], sinA = _ref[0], cosA = _ref[1]; return function (x, y) { var invert = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; return invert ? [x * cosA - y * sinA, x * sinA + y * cosA] : [x * cosA + y * sinA, -x * sinA + y * cosA]; }; }, radToDeg: function radToDeg(rad) { return rad * 180 / Math.PI; }, degToRad: function degToRad(deg) { return deg * Math.PI / 180; }, intLimit: function intLimit(int, circle) { return (int % circle + circle) % circle; }, getAngle: function getAngle(x2, y2, x1, y1, degOffset) { var rad = Math.atan2(y2 - y1, x2 - x1); var deg = rad * 180 / Math.PI; deg -= degOffset; return this.intLimit(deg, 360); }, getRadius: function getRadius(dx, dy) { return Math.sqrt(dx * dx + dy * dy); }, getDxyByAngle: function getDxyByAngle(dx, dy, angle) { var dis = this.getRadius(dx, dy); var theta = Math.atan2(dy, dx) - angle * Math.PI / 180; return { dx: dis * Math.cos(theta), dy: dis * Math.sin(theta) }; }, getRotationPoint: function getRotationPoint(point, radian) { var x = point.x; var y = point.y; var sin = Math.sin(radian); var cos = Math.cos(radian); return { x: x * cos - y * sin, y: x * sin + y * cos }; }, getSkewPoint: function getSkewPoint(point, base, skewX, skewY) { var dx = point.x - base.x; var dy = point.y - base.y; return { x: base.x + (dx + Math.tan(skewX) * dy), y: base.y + (dy + Math.tan(skewY) * dx) }; } }; module.exports = exports["default"];