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