From 9d7822ada88392e1b1a612e9b4f680fe6b09aedf Mon Sep 17 00:00:00 2001
From: 826220679@qq.com <826220679@qq.com>
Date: 星期六, 27 十二月 2025 22:25:38 +0800
Subject: [PATCH] 优化了路径规划
---
src/lujing/YixinglujingNoObstacle.java | 15 +++++++++++----
1 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/lujing/YixinglujingNoObstacle.java b/src/lujing/YixinglujingNoObstacle.java
index fd879ad..304a3bc 100644
--- a/src/lujing/YixinglujingNoObstacle.java
+++ b/src/lujing/YixinglujingNoObstacle.java
@@ -1,8 +1,6 @@
package lujing;
import java.util.*;
-import java.util.Set;
-import java.util.HashSet;
/**
* 寮傚舰鑽夊湴璺緞瑙勫垝 - 鍑瑰杈瑰舰鍏煎浼樺寲鐗� V5.0
@@ -322,12 +320,21 @@
}
private static int getEdgeIndex(Point p, List<Point> poly) {
+ int bestIdx = -1;
+ double minD = Double.MAX_VALUE;
for (int i = 0; i < poly.size(); i++) {
Point p1 = poly.get(i);
Point p2 = poly.get((i + 1) % poly.size());
- if (distToSegment(p, p1, p2) < 1e-3) return i;
+ double d = distToSegment(p, p1, p2);
+ if (d < minD) {
+ minD = d;
+ bestIdx = i;
+ }
}
- return -1;
+ // 鍙鎵惧埌鏈�杩戠殑杈瑰嵆鍙紝鏀惧闃堝�间互搴斿娴偣璇樊鍜屾棆杞彉褰�
+ // 濡傛灉璺濈杩囧ぇ锛堜緥濡傝秴杩�1绫筹級锛屽彲鑳界‘瀹炰笉鍦ㄨ竟鐣屼笂锛屼絾鍦ㄨ矾寰勮鍒掍笂涓嬫枃涓紝
+ // 杩欎簺鐐规槸鐢辨壂鎻忕嚎鐢熸垚鐨勶紝鐞嗚涓婁竴瀹氬湪杈圭晫涓婏紝鎵�浠ュ己鍒跺惛闄勬槸瀹夊叏鐨勩��
+ return minD < 1.0 ? bestIdx : -1;
}
private static double distToSegment(Point p, Point s, Point e) {
--
Gitblit v1.10.0