From dc9dce0555beb85d1262893fd5d56747d6a83855 Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期五, 19 十二月 2025 11:48:37 +0800
Subject: [PATCH] 新增了导航预览功能

---
 src/lujing/MowingPathGenerationPage.java |   34 ++++++++--------------------------
 1 files changed, 8 insertions(+), 26 deletions(-)

diff --git a/src/lujing/MowingPathGenerationPage.java b/src/lujing/MowingPathGenerationPage.java
index 5c080b0..3e0cd48 100644
--- a/src/lujing/MowingPathGenerationPage.java
+++ b/src/lujing/MowingPathGenerationPage.java
@@ -477,33 +477,22 @@
                 obstacleList = new ArrayList<>();
             }
 
-            // 鍒ゆ柇鏄惁鏈夐殰纰嶇墿锛氬彧瑕佸師濮嬭緭鍏ユ湁闅滅鐗╁唴瀹癸紝灏变娇鐢∣bstaclePathPlanner
-            // 鍗充娇瑙f瀽鍚庡垪琛ㄤ负绌猴紝涔熷皾璇曚娇鐢∣bstaclePathPlanner锛堝畠浼氬鐞嗙┖闅滅鐗╁垪琛ㄧ殑鎯呭喌锛�
-            boolean hasObstacles = hasObstacleInput && !obstacleList.isEmpty();
-            
-            // 濡傛灉鍘熷杈撳叆鏈夐殰纰嶇墿浣嗚В鏋愬け璐ワ紝缁欏嚭鎻愮ず
-            if (hasObstacleInput && obstacleList.isEmpty()) {
-                if (showMessages) {
-                    JOptionPane.showMessageDialog(parentComponent, 
-                        "闅滅鐗╁潗鏍囨牸寮忓彲鑳戒笉姝g‘锛屽皢灏濊瘯鐢熸垚璺緞銆傚鏋滆矾寰勪笉姝g‘锛岃妫�鏌ラ殰纰嶇墿鍧愭爣鏍煎紡銆�", 
-                        "鎻愮ず", JOptionPane.WARNING_MESSAGE);
-                }
-                // 浠嶇劧灏濊瘯浣跨敤ObstaclePathPlanner锛屽嵆浣块殰纰嶇墿鍒楄〃涓虹┖
-                // 杩欐牱鑷冲皯鍙互纭繚浣跨敤姝g‘鐨勮矾寰勮鍒掑櫒
-            }
+            // 鍒ゆ柇鏄惁鏈夋湁鏁堢殑闅滅鐗╋細鍙湁褰撹В鏋愭垚鍔熶笖鍒楄〃涓嶄负绌烘椂锛屾墠璁や负鏈夐殰纰嶇墿
+            boolean hasValidObstacles = !obstacleList.isEmpty();
             
             String generated;
             
-            if (!hasObstacles && !hasObstacleInput) {
-                // 瀹屽叏娌℃湁闅滅鐗╄緭鍏ユ椂锛屼娇鐢↙unjingguihua绫荤殑鏂规硶鐢熸垚璺緞
+            if (!hasValidObstacles) {
+                // 闅滅鐗╁潗鏍囦笉瀛樺湪鎴栦负绌烘椂锛屼娇鐢↙unjingguihua绫荤殑鏂规硶鐢熸垚璺緞
                 generated = Lunjingguihua.generatePathFromStrings(
                     boundary,
                     obstacles != null ? obstacles : "",
                     plannerWidth,
+                    null,  // safetyDistStr锛屼娇鐢ㄩ粯璁ゅ��
                     mode
                 );
             } else {
-                // 鏈夐殰纰嶇墿杈撳叆鏃讹紙鍗充娇瑙f瀽澶辫触锛夛紝浣跨敤ObstaclePathPlanner澶勭悊璺緞鐢熸垚
+                // 鏈夋湁鏁堥殰纰嶇墿鏃讹紝浣跨敤ObstaclePathPlanner澶勭悊璺緞鐢熸垚
                 List<Coordinate> polygon = Lunjingguihua.parseCoordinates(boundary);
                 if (polygon.size() < 4) {
                     if (showMessages) {
@@ -513,15 +502,8 @@
                     return null;
                 }
 
-                // 鏍规嵁鏄惁鏈夐殰纰嶇墿璁剧疆涓嶅悓鐨勫畨鍏ㄨ窛绂�
-                double safetyDistance;
-                if (!obstacleList.isEmpty()) {
-                    // 鏈夐殰纰嶇墿鏃朵娇鐢ㄥ壊鑽夊搴︾殑涓�鍗� + 0.05绫抽澶栧畨鍏ㄨ窛绂�
-                    safetyDistance = widthMeters / 2.0 + 0.05;
-                } else {
-                    // 闅滅鐗╄В鏋愬け璐ヤ絾杈撳叆瀛樺湪锛屼娇鐢ㄨ緝灏忕殑瀹夊叏璺濈
-                    safetyDistance = 0.01;
-                }
+                // 鏈夐殰纰嶇墿鏃朵娇鐢ㄥ壊鑽夊搴︾殑涓�鍗� + 0.05绫抽澶栧畨鍏ㄨ窛绂�
+                double safetyDistance = widthMeters / 2.0 + 0.05;
 
                 ObstaclePathPlanner pathPlanner = new ObstaclePathPlanner(
                     polygon, widthMeters, mode, obstacleList, safetyDistance);

--
Gitblit v1.10.0