From 6c9349bd065a99bf2066b6ae3f09691270720c9b Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期一, 22 十二月 2025 13:48:27 +0800
Subject: [PATCH] 解决了手动绘制边界的bug,所有返回按钮采用公用方法创建
---
src/zhuye/pointandnumber.java | 14 +++++++++++---
1 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/zhuye/pointandnumber.java b/src/zhuye/pointandnumber.java
index fb95ad8..582aca5 100644
--- a/src/zhuye/pointandnumber.java
+++ b/src/zhuye/pointandnumber.java
@@ -20,7 +20,8 @@
List<Point2D.Double> boundary, // 杈圭晫鐐归泦鍚�
double scale, // 缂╂斁姣斾緥
double mergeThreshold, // 鍚堝苟闃堝��
- Color pointColor) { // 鐐归鑹�
+ Color pointColor, // 鐐归鑹�
+ double diameterScale) { // 鐩村緞缂╂斁鍥犲瓙
if (boundary == null || boundary.size() < 2) { // 鍒ゆ柇鏁版嵁鏄惁鏈夋晥
return; // 鏃犳晥鐩存帴杩斿洖
}
@@ -32,8 +33,15 @@
return; // 鏃犳晥杩斿洖
}
- double scaleFactor = Math.max(0.5, scale); // 闃叉杩囧皬缂╂斁
- double markerDiameter = Math.max(1.0, (10.0 / scaleFactor) * 0.2); // 鎻忕偣鐩村緞
+ double scaleFactor = Math.max(0.5, scale); // 闃叉杩囧皬缂╂斁
+ // 杈圭晫绾垮搴︼細3 / Math.max(0.5, scale)
+ // 杈圭晫鐐圭洿寰� = 杈圭晫绾垮搴︾殑2鍊�
+ double boundaryLineWidth = 3.0 / scaleFactor; // 杈圭晫绾垮搴�
+ double markerDiameter = boundaryLineWidth * 2.0; // 鎻忕偣鐩村緞锛堣竟鐣岀嚎瀹藉害鐨�2鍊嶏級
+ // 搴旂敤鐩村緞缂╂斁鍥犲瓙
+ if (diameterScale > 0.0 && Double.isFinite(diameterScale)) {
+ markerDiameter *= diameterScale;
+ }
double markerRadius = markerDiameter / 2.0; // 鍗婂緞
for (int i = 0; i < effectiveCount; i++) { // 閬嶅巻鏈夋晥鐐�
--
Gitblit v1.10.0