修改楼梯场景路径不能到达却显示到达的bug

This commit is contained in:
tian 2025-10-10 23:27:46 +08:00
parent 2464f17092
commit 83a4a0e7aa

View File

@ -556,14 +556,14 @@ namespace NavisworksTransport.PathPlanning
{
var lastInfo = graph3D.NodeInfo[lastNode];
// 检查最后节点是否到达终点网格使用前面已定义的endGridPos
if (lastInfo.X == endGridPos.X && lastInfo.Y == endGridPos.Y)
// 检查最后节点是否到达终点(网格坐标和高度层都要匹配
if (lastInfo.X == endGridPos.X && lastInfo.Y == endGridPos.Y && lastInfo.LayerIndex == endInfo.LayerIndex)
{
// 到达终点网格,路径完整
// 到达终点网格和高度层,路径完整
isComplete = true;
actualEnd = path3D[path3D.Count - 1];
completionPercentage = 100.0;
LogManager.Info($"[3D路径规划] 找到完整路径,到达终点网格({endGridPos.X},{endGridPos.Y})");
LogManager.Info($"[3D路径规划] 找到完整路径,到达终点网格({endGridPos.X},{endGridPos.Y}) Layer{endInfo.LayerIndex}");
}
else
{
@ -585,7 +585,15 @@ namespace NavisworksTransport.PathPlanning
completionPercentage = totalDistance > 0 ? (actualDistance / totalDistance) * 100 : 0;
LogManager.Warning($"[3D路径规划] 部分路径:到达网格({lastInfo.X},{lastInfo.Y}),距离终点网格({endGridPos.X},{endGridPos.Y})还有距离");
// 判断是否到达了目标网格但高度层不对
if (lastInfo.X == endGridPos.X && lastInfo.Y == endGridPos.Y)
{
LogManager.Warning($"[3D路径规划] 部分路径:到达目标网格({lastInfo.X},{lastInfo.Y})但高度层不匹配 - 实际Layer{lastInfo.LayerIndex}, 目标Layer{endInfo.LayerIndex}");
}
else
{
LogManager.Warning($"[3D路径规划] 部分路径:到达网格({lastInfo.X},{lastInfo.Y}) Layer{lastInfo.LayerIndex},距离终点网格({endGridPos.X},{endGridPos.Y}) Layer{endInfo.LayerIndex}还有距离");
}
LogManager.Info($"[3D路径规划] 完成度: {completionPercentage:F1}%,实际终点: ({actualEnd.X:F2}, {actualEnd.Y:F2}, Z={actualEnd.Z:F2})");
}
}