From 69b40096cb0ae965f2a3e92672b880edfe7d04d2 Mon Sep 17 00:00:00 2001
From: 826220679@qq.com <826220679@qq.com>
Date: 星期六, 27 十二月 2025 21:14:09 +0800
Subject: [PATCH] 优化了登录页面

---
 src/lujing/AoxinglujingHaveObstacel.java |   33 ++++++++++++++++++++++++++++++++-
 1 files changed, 32 insertions(+), 1 deletions(-)

diff --git a/src/lujing/AoxinglujingHaveObstacel.java b/src/lujing/AoxinglujingHaveObstacel.java
index 5e2f046..cb3177a 100644
--- a/src/lujing/AoxinglujingHaveObstacel.java
+++ b/src/lujing/AoxinglujingHaveObstacel.java
@@ -108,6 +108,14 @@
         List<PathSegment> zigZag = generateFixedZigZag(workArea, obstacles, bestAngle, width, currentPos);
         finalPath.addAll(zigZag);
 
+        // 鏍煎紡鍖栧潗鏍囷細淇濈暀涓や綅灏忔暟
+        for (PathSegment segment : finalPath) {
+            segment.start.x = Math.round(segment.start.x * 100.0) / 100.0;
+            segment.start.y = Math.round(segment.start.y * 100.0) / 100.0;
+            segment.end.x = Math.round(segment.end.x * 100.0) / 100.0;
+            segment.end.y = Math.round(segment.end.y * 100.0) / 100.0;
+        }
+
         return finalPath;
     }
 
@@ -182,7 +190,30 @@
     private static List<Obstacle> parseObstacles(String obsStr, double margin) {
         List<Obstacle> list = new ArrayList<>();
         if (obsStr == null || obsStr.isEmpty()) return list;
-        for (String part : obsStr.split("\\$")) {
+        
+        // 鍏煎涓ょ鏍煎紡锛�
+        // 1. 鎷彿鍒嗛殧锛�(x1,y1;x2,y2)(x3,y3;x4,y4)
+        // 2. $鍒嗛殧锛歺1,y1;x2,y2$x3,y3;x4,y4
+        
+        String[] groups;
+        if (obsStr.contains("(") && obsStr.contains(")")) {
+            // 澶勭悊鎷彿鏍煎紡
+            // 绉婚櫎鎵�鏈夌┖鐧藉瓧绗�
+            String cleanStr = obsStr.replaceAll("\\s+", "");
+            // 鎻愬彇鎷彿鍐呯殑鍐呭
+            List<String> parts = new ArrayList<>();
+            java.util.regex.Matcher m = java.util.regex.Pattern.compile("\\(([^)]+)\\)").matcher(cleanStr);
+            while (m.find()) {
+                parts.add(m.group(1));
+            }
+            groups = parts.toArray(new String[0]);
+        } else {
+            // 澶勭悊$鍒嗛殧鏍煎紡
+            groups = obsStr.split("\\$");
+        }
+
+        for (String part : groups) {
+            if (part == null || part.trim().isEmpty()) continue;
             List<Point> pts = parseCoords(part);
             if (pts.size() == 2) {
                 double r = dist(pts.get(0), pts.get(1));

--
Gitblit v1.10.0