From b518f895dec5264fd25e22a68300c40ceba6f43d Mon Sep 17 00:00:00 2001
From: 826220679@qq.com <826220679@qq.com>
Date: 星期六, 20 十二月 2025 15:30:20 +0800
Subject: [PATCH] 新增了按钮功能

---
 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