@logicflow/extension
Version:
LogicFlow Extensions
32 lines (31 loc) • 1.06 kB
JavaScript
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;
;