@logicflow/extension
Version:
LogicFlow Extensions
27 lines (26 loc) • 829 B
JavaScript
/**
* 三次贝塞尔曲线公式
*/
export 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 };
};
/**
* 计算两个节点间的距离
* @param point1
* @param point2
* @param gridSize
*/
export 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));
};