From e4b4347318f1f37c64b8055f1f1898da59a167ba Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期五, 26 十二月 2025 19:38:43 +0800
Subject: [PATCH] 优化了细节

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

diff --git a/src/lujing/AoxinglujingHaveObstacel.java b/src/lujing/AoxinglujingHaveObstacel.java
index 5e2f046..ded40ab 100644
--- a/src/lujing/AoxinglujingHaveObstacel.java
+++ b/src/lujing/AoxinglujingHaveObstacel.java
@@ -182,7 +182,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