UNPKG

@logicflow/extension

Version:
27 lines (26 loc) 829 B
/** * 三次贝塞尔曲线公式 */ 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)); };