From 5d6d890cfd10466d5d14ff5177adcc888baaa0e4 Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期三, 17 十二月 2025 17:46:13 +0800
Subject: [PATCH] 新增了边界距离显示优化了设置页面布局

---
 src/zhuye/pointandnumber.java |   27 ++++++---------------------
 1 files changed, 6 insertions(+), 21 deletions(-)

diff --git a/src/zhuye/pointandnumber.java b/src/zhuye/pointandnumber.java
index 39c2304..c716159 100644
--- a/src/zhuye/pointandnumber.java
+++ b/src/zhuye/pointandnumber.java
@@ -1,29 +1,27 @@
 package zhuye; // 鍖呭0鏄�
 
 import java.awt.Color; // 棰滆壊绫�
-import java.awt.Font; // 瀛椾綋绫�
-import java.awt.FontMetrics; // 瀛椾綋搴﹂噺
 import java.awt.Graphics2D; // 缁樺浘涓婁笅鏂�
 import java.awt.geom.Ellipse2D; // 鍦嗗舰缁樺埗
 import java.awt.geom.Point2D; // 浜岀淮鍧愭爣鐐�
 import java.util.List; // 鍒楄〃鎺ュ彛
 
 /**
- * Utility for rendering boundary vertices and numeric labels. // 宸ュ叿绫昏鏄�
+ * Utility for rendering boundary vertices. // 宸ュ叿绫昏鏄�
  */
 public final class pointandnumber { // 宸ュ叿绫诲畾涔�
     private pointandnumber() { // 绉佹湁鏋勯�犻槻姝㈠疄渚嬪寲
     }
 
     /**
-     * Draw numbered boundary points with consistent styling.
+     * Draw boundary points with consistent styling.
      */
     public static void drawBoundaryPoints(Graphics2D g2d, // 缁樺埗鏂规硶鍏ュ彛
                                           List<Point2D.Double> boundary, // 杈圭晫鐐归泦鍚�
                                           double scale, // 缂╂斁姣斾緥
                                           double mergeThreshold, // 鍚堝苟闃堝��
                                           Color pointColor, // 鐐归鑹�
-                                          Color labelColor) { // 搴忓彿棰滆壊
+                                          double diameterScale) { // 鐩村緞缂╂斁鍥犲瓙
         if (boundary == null || boundary.size() < 2) { // 鍒ゆ柇鏁版嵁鏄惁鏈夋晥
             return; // 鏃犳晥鐩存帴杩斿洖
         }
@@ -35,14 +33,10 @@
             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)
+    double markerDiameter = 3.0 / scaleFactor; // 鎻忕偣鐩村緞锛堜笌杈圭晫绾垮搴︿竴鑷达級
         double markerRadius = markerDiameter / 2.0; // 鍗婂緞
-        int fontSize =2; // 瀛椾綋澶у皬
-
-        Font originalFont = g2d.getFont(); // 淇濆瓨鍘熷瓧浣�
-        g2d.setFont(new Font("Times New Roman ", Font.CENTER_BASELINE, fontSize)); // 鍒囨崲瀛椾綋
-        FontMetrics metrics = g2d.getFontMetrics(); // 瀛椾綋搴﹂噺
 
         for (int i = 0; i < effectiveCount; i++) { // 閬嶅巻鏈夋晥鐐�
             Point2D.Double point = boundary.get(i); // 褰撳墠鐐�
@@ -52,16 +46,7 @@
             g2d.setColor(pointColor); // 璁剧疆鐐归鑹�
             Ellipse2D marker = new Ellipse2D.Double(x - markerRadius, y - markerRadius, markerDiameter, markerDiameter); // 鍒涘缓鍦�
             g2d.fill(marker); // 缁樺埗鍦�
-
-            String label = String.valueOf(i + 1); // 搴忓彿鏂囨湰
-            int textWidth = metrics.stringWidth(label); // 鏂囨湰瀹藉害
-            g2d.setColor(labelColor); // 璁剧疆鏂囨湰棰滆壊
-            float baselineX = (float) (x - textWidth / 2.0); // 璁$畻X鍩虹嚎
-            float baselineY = (float) (y + (metrics.getAscent() - metrics.getDescent()) / 2.0); // 璁$畻Y鍩虹嚎
-            g2d.drawString(label, baselineX, baselineY); // 缁樺埗鏂囨湰
         }
-
-        g2d.setFont(originalFont); // 杩樺師瀛椾綋
     }
 
     private static boolean arePointsClose(Point2D.Double a, Point2D.Double b, double threshold) { // 鐐硅窛绂诲垽鏂�

--
Gitblit v1.10.0