UNPKG

@logicflow/core

Version:

LogicFlow, help you quickly create flowcharts

51 lines (50 loc) 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.radianToAngle = exports.angleToRadian = exports.calculatePointAfterRotateAngle = exports.getNewCenter = void 0; /** * 根据两个点获取中心点坐标 */ function getNewCenter(startPoint, endPoint) { var x1 = startPoint.x, y1 = startPoint.y; var x2 = endPoint.x, y2 = endPoint.y; var newCenter = { x: x1 + (x2 - x1) / 2, y: y1 + (y2 - y1) / 2, }; return newCenter; } exports.getNewCenter = getNewCenter; /** * 旋转矩阵公式,可以获取某一个坐标旋转angle后的坐标 * @param p 当前坐标 * @param center 旋转中心 * @param angle 旋转角度(不是弧度) */ function calculatePointAfterRotateAngle(p, center, angle) { var radian = angleToRadian(angle); var dx = p.x - center.x; var dy = p.y - center.y; var x = dx * Math.cos(radian) - dy * Math.sin(radian) + center.x; var y = dx * Math.sin(radian) + dy * Math.cos(radian) + center.y; return { x: x, y: y, }; } exports.calculatePointAfterRotateAngle = calculatePointAfterRotateAngle; /** * 角度转弧度 * @param angle 角度 */ function angleToRadian(angle) { return (angle * Math.PI) / 180; } exports.angleToRadian = angleToRadian; /** * 弧度转角度 * @param radian 弧度 */ function radianToAngle(radian) { return (radian / Math.PI) * 180; } exports.radianToAngle = radianToAngle;