From 88194aa37e19d4b1463bd0cbb9d7a31a42ba6c68 Mon Sep 17 00:00:00 2001 From: atwood Date: Mon, 15 Apr 2019 09:27:47 +0800 Subject: [PATCH 1/2] resolve the spot shake issue --- src/CanvasNest.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/CanvasNest.js b/src/CanvasNest.js index 7b086fc..497bab2 100644 --- a/src/CanvasNest.js +++ b/src/CanvasNest.js @@ -115,7 +115,11 @@ export default class CanvasNest { y_dist = r.y - e.y; // y轴距离 n dist = x_dist * x_dist + y_dist * y_dist; // 总距离, m - dist < e.max && (e === current && dist >= e.max / 2 && (r.x -= 0.03 * x_dist, r.y -= 0.03 * y_dist), // 靠近的时候加速 + dist < e.max && (e === current && + ( + ((r.xa / r.ya - x_dist / y_dist < 0.1 ) && (dist <= e.max / 1.995 && dist >= e.max / 2.005) && (r.x -= r.xa, r.y -= r.ya)) || //当加速度斜率逼近距离斜率且距离小于某个范围时,就停止运动 + (dist >= e.max / 2 && (r.x -= 0.03 * x_dist, r.y -= 0.03 * y_dist)) + ), // 靠近的时候加速 d = (e.max - dist) / e.max, context.beginPath(), context.lineWidth = d / 2, From c6b0ff617f1ea68002e28f31ae9604399c13748a Mon Sep 17 00:00:00 2001 From: atwood Date: Tue, 16 Apr 2019 15:33:46 +0800 Subject: [PATCH 2/2] add Math.abs() to fix bug --- src/CanvasNest.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CanvasNest.js b/src/CanvasNest.js index 497bab2..9875e8e 100644 --- a/src/CanvasNest.js +++ b/src/CanvasNest.js @@ -117,7 +117,7 @@ export default class CanvasNest { dist < e.max && (e === current && ( - ((r.xa / r.ya - x_dist / y_dist < 0.1 ) && (dist <= e.max / 1.995 && dist >= e.max / 2.005) && (r.x -= r.xa, r.y -= r.ya)) || //当加速度斜率逼近距离斜率且距离小于某个范围时,就停止运动 + ((Math.abs(r.xa / r.ya - x_dist / y_dist) < 0.1 ) && (dist <= e.max / 1.995 && dist >= e.max / 2.005) && (r.x -= r.xa, r.y -= r.ya)) || //当加速度斜率逼近距离斜率且距离小于某个范围时,就停止运动 (dist >= e.max / 2 && (r.x -= 0.03 * x_dist, r.y -= 0.03 * y_dist)) ), // 靠近的时候加速 d = (e.max - dist) / e.max,