From 529a09da3edbb7fa897397fadaaae0fce8ac2462 Mon Sep 17 00:00:00 2001 From: kron Date: Thu, 21 Aug 2025 11:39:40 +0800 Subject: [PATCH] fix bug --- src/components/TestDistance.vue | 2 +- src/util.js | 57 +++++++++++++++++---------------- 2 files changed, 31 insertions(+), 28 deletions(-) diff --git a/src/components/TestDistance.vue b/src/components/TestDistance.vue index 6bd55b9..bad2e5a 100644 --- a/src/components/TestDistance.vue +++ b/src/components/TestDistance.vue @@ -83,7 +83,7 @@ onUnmounted(() => { 请调整站位 - 请射箭测试站距 + 请射箭,测试站距 diff --git a/src/util.js b/src/util.js index 8c8b81b..277d1f1 100644 --- a/src/util.js +++ b/src/util.js @@ -380,26 +380,31 @@ const calcHalfBowTarget = (x, y, diameter, noX = false) => { }; export const calcTripleBowTarget = (x, y, diameter, noX = false) => { - const side = diameter * 0.319; - if (x / diameter >= 0.312) { - if (y / diameter >= 0.65) { - return calcHalfBowTarget( - x - diameter * 0.344, - y - diameter * 0.684, - side, - noX - ); - } - if (y / diameter >= 0.31) { + const side = diameter * 0.324; + if (x / diameter >= 0.316) { + if (y / diameter >= 0.654) { return calcHalfBowTarget( x - diameter * 0.342, - y - diameter * 0.344, + y - diameter * 0.68, side, noX ); } - if (y / diameter >= -0.025) { - return calcHalfBowTarget(x - diameter * 0.342, y, side, noX); + if (y / diameter >= 0.313) { + return calcHalfBowTarget( + x - diameter * 0.342, + y - diameter * 0.34, + side, + noX + ); + } + if (y / diameter >= -0.023) { + return calcHalfBowTarget( + x - diameter * 0.342, + y - diameter * 0.005, + side, + noX + ); } } return 0; @@ -407,26 +412,24 @@ export const calcTripleBowTarget = (x, y, diameter, noX = false) => { export const calcPinBowTarget = (x, y, diameter, noX = false) => { const side = diameter * 0.484; - if (x / diameter >= 0.488 && y / diameter >= 0.456) { - return calcHalfBowTarget( - x - diameter * 0.523, - y - diameter * 0.486, - side, - noX - ); - } - if (x / diameter >= -0.03 && y / diameter >= 0.456) { - return calcHalfBowTarget(x, y - diameter * 0.486, side, noX); - } + let r1 = 0; + let r2 = 0; + let r3 = 0; if (x / diameter >= 0.23 && y / diameter >= 0.005) { - return calcHalfBowTarget( + r1 = calcHalfBowTarget( x - diameter * 0.26, y - diameter * 0.0345, side, noX ); } - return 0; + if (x / diameter >= -0.03 && y / diameter >= 0.456) { + r2 = calcHalfBowTarget(x, y - diameter * 0.486, side, noX); + } + if (x / diameter >= 0.49 && y / diameter >= 0.456) { + r3 = calcHalfBowTarget(x - diameter * 0.52, y - diameter * 0.49, side, noX); + } + return r1 || r2 || r3; }; export const calcRing = (bowtargetId, x, y, diameter) => {