UNPKG

@logicflow/extension

Version:
32 lines (31 loc) 1.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.calcTwoPointsDistance = exports.getPointOnBezier = void 0; /** * 三次贝塞尔曲线公式 */ var getPointOnBezier = function (t, P0, P1, P2, P3) { var x = Math.pow((1 - t), 3) * P0.x + 3 * Math.pow((1 - t), 2) * t * P1.x + 3 * (1 - t) * Math.pow(t, 2) * P2.x + Math.pow(t, 3) * P3.x; var y = Math.pow((1 - t), 3) * P0.y + 3 * Math.pow((1 - t), 2) * t * P1.y + 3 * (1 - t) * Math.pow(t, 2) * P2.y + Math.pow(t, 3) * P3.y; return { x: x, y: y }; }; exports.getPointOnBezier = getPointOnBezier; /** * 计算两个节点间的距离 * @param point1 * @param point2 * @param gridSize */ var calcTwoPointsDistance = function (point1, point2, gridSize) { if (gridSize === void 0) { gridSize = 1; } var dx = (point1.x - point2.x) / gridSize; var dy = (point1.y - point2.y) / gridSize; return Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2)); }; exports.calcTwoPointsDistance = calcTwoPointsDistance;