From 54a51d2a28fb728668f59e1f17a73b4e555a1da3 Mon Sep 17 00:00:00 2001 From: kron Date: Mon, 4 Aug 2025 13:51:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=94=AF=E6=8C=81=E5=8F=A6?= =?UTF-8?q?=E5=A4=962=E7=A7=8D=E9=9D=B6=E7=BA=B8=E7=9A=84=E7=8E=AF?= =?UTF-8?q?=E6=95=B0=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/BowTargetEdit.vue | 17 +++---- src/static/bow-target2.png | Bin 0 -> 19131 bytes src/static/bow-target3.png | Bin 0 -> 20700 bytes src/util.js | 74 ++++++++++++++++++++++++++++++- 4 files changed, 78 insertions(+), 13 deletions(-) create mode 100644 src/static/bow-target2.png create mode 100644 src/static/bow-target3.png diff --git a/src/components/BowTargetEdit.vue b/src/components/BowTargetEdit.vue index b5c8202..675a739 100644 --- a/src/components/BowTargetEdit.vue +++ b/src/components/BowTargetEdit.vue @@ -29,7 +29,7 @@ const onClick = async (e) => { newArrow.x, newArrow.y, rect.value.width * 0.9, - rect.value.width * 0.9 + rect.value.height - rect.value.top ); arrow.value = newArrow; }; @@ -66,17 +66,13 @@ const onDrag = async (e) => { const deltaX = clientX - dragStartPos.value.x; const deltaY = clientY - dragStartPos.value.y; - const length = rect.value.width * 0.9; + const width = rect.value.width * 0.9; + const height = rect.value.height - rect.value.top; // 更新坐标 - arrow.value.x = Math.max(0, Math.min(length, arrow.value.x + deltaX)); - arrow.value.y = Math.max(0, Math.min(length, arrow.value.y + deltaY)); - arrow.value.ring = calcRing( - arrow.value.x, - arrow.value.y, - rect.value.width * 0.9, - rect.value.width * 0.9 - ); + arrow.value.x = Math.max(0, Math.min(width, arrow.value.x + deltaX)); + arrow.value.y = Math.max(0, Math.min(height, arrow.value.y + deltaY)); + arrow.value.ring = calcRing(arrow.value.x, arrow.value.y, width, height); // 更新拖拽起始位置 dragStartPos.value = { x: clientX, y: clientY }; @@ -101,7 +97,6 @@ onMounted(async () => { @touchend="endDrag" > - P0-*WxDOuO2MHEzaF^g7bZ+yV|DJX3 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 literal 0 HcmV?d00001 diff --git a/src/static/bow-target3.png b/src/static/bow-target3.png new file mode 100644 index 0000000000000000000000000000000000000000..1c0afdbc4a7e97ac5e9a033f2af783d3322e57c0 GIT binary patch literal 20700 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 WpFyGv9rdSd=L~dAw5#sAqW=efte(99 literal 0 HcmV?d00001 diff --git a/src/util.js b/src/util.js index 80d7fcf..5d5279e 100644 --- a/src/util.js +++ b/src/util.js @@ -307,14 +307,14 @@ export const calcRing = (x, y, targetWidth, targetHeight) => { const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY); // 计算靶纸半径(取宽高中较小值的一半) - const targetRadius = Math.min(targetWidth, targetHeight) / 2; + // const targetRadius = Math.min(targetWidth, targetHeight) / 2; + const targetRadius = targetWidth / 2; // 如果距离超过靶纸半径,则脱靶 if (distance > targetRadius) return 0; // 计算相对距离(0-1之间) const relativeDistance = distance / targetRadius; - // 全环靶有10个环,每个环占半径的10% // 从外到内:1环到10环 // 距离越近靶心,环数越高 @@ -331,3 +331,73 @@ export const calcRing = (x, y, targetWidth, targetHeight) => { return 0; // 脱靶 }; + +const calcSmallBowTarget = (x, y, side) => { + // 计算靶心坐标(靶纸中心) + const centerX = side / 2; + const centerY = side / 2; + + // 计算点击点到靶心的距离 + const deltaX = x - centerX; + const deltaY = y - centerY; + const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY); + + // 计算靶纸半径(取宽高中较小值的一半) + const targetRadius = side / 2; + + // 如果距离超过靶纸半径,则脱靶 + if (distance > targetRadius) return 0; + + // 计算相对距离(0-1之间) + const relativeDistance = distance / targetRadius; + if (relativeDistance <= 0.1) return "X"; // 靶心区域 + if (relativeDistance <= 0.2) return 10; + if (relativeDistance <= 0.4) return 9; + if (relativeDistance <= 0.6) return 8; + if (relativeDistance <= 0.8) return 7; + if (relativeDistance <= 1.0) return 6; + + return 0; // 脱靶 +}; + +export const calcRing2 = (x, y, targetWidth, targetHeight) => { + const side = targetWidth * 0.48; + if ( + x / targetWidth >= 0.26 && + x / targetWidth <= 0.74 && + y / targetHeight <= 0.48 + ) { + return calcSmallBowTarget(x - targetWidth * 0.26, y, side); + } else if (x / targetHeight <= 0.48 && y / targetHeight >= 0.456) { + return calcSmallBowTarget(x, y - targetHeight * 0.456, side); + } else if (x / targetHeight >= 0.52 && y / targetHeight >= 0.456) { + return calcSmallBowTarget( + x - targetWidth * 0.52, + y - targetHeight * 0.456, + side + ); + } + return 0; +}; + +export const calcRing3 = (x, y, targetWidth, targetHeight) => { + const side = targetWidth * 0.325; + if (x / targetWidth >= 0.337 && x / targetWidth <= 0.663) { + if (y / targetHeight <= 0.325) { + return calcSmallBowTarget(x - targetWidth * 0.337, y, side); + } else if (y / targetHeight >= 0.335 && y / targetHeight <= 0.662) { + return calcSmallBowTarget( + x - targetWidth * 0.337, + y - targetHeight * 0.335, + side + ); + } else if (y / targetHeight >= 0.674) { + return calcSmallBowTarget( + x - targetWidth * 0.337, + y - targetHeight * 0.674, + side + ); + } + } + return 0; +};