| | |
| | | |
| | | finalPath.addAll(scanPath); |
| | | |
| | | // 10. 格式化坐标:保留两位小数 |
| | | 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; |
| | | } |
| | | |
| | | // 11. 打印输出路径坐标 |
| | | printPathCoordinates(finalPath); |
| | | |
| | | return finalPath; |
| | | } |
| | | |
| | |
| | | return points; |
| | | } |
| | | |
| | | /** |
| | | * 打印输出路径坐标到控制台 |
| | | */ |
| | | private static void printPathCoordinates(List<PathSegment> path) { |
| | | if (path == null || path.isEmpty()) { |
| | | System.out.println("路径为空"); |
| | | return; |
| | | } |
| | | |
| | | System.out.println("========== 路径坐标输出 =========="); |
| | | System.out.println("总路径段数: " + path.size()); |
| | | System.out.println(); |
| | | System.out.println("路径坐标序列 (格式: x,y;x,y;...):"); |
| | | |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (int i = 0; i < path.size(); i++) { |
| | | PathSegment segment = path.get(i); |
| | | if (i == 0) { |
| | | // 第一个段的起点 |
| | | sb.append(String.format("%.2f,%.2f", segment.start.x, segment.start.y)); |
| | | } |
| | | // 每个段的终点 |
| | | sb.append(";"); |
| | | sb.append(String.format("%.2f,%.2f", segment.end.x, segment.end.y)); |
| | | } |
| | | |
| | | System.out.println(sb.toString()); |
| | | System.out.println(); |
| | | System.out.println("详细路径信息:"); |
| | | for (int i = 0; i < path.size(); i++) { |
| | | PathSegment segment = path.get(i); |
| | | String type = segment.isMowing ? "割草" : "空走"; |
| | | System.out.println(String.format("段 %d [%s]: (%.2f,%.2f) -> (%.2f,%.2f)", |
| | | i + 1, type, segment.start.x, segment.start.y, segment.end.x, segment.end.y)); |
| | | } |
| | | System.out.println("=================================="); |
| | | } |
| | | |
| | | public static class Point { |
| | | public double x, y; |
| | | public Point(double x, double y) { this.x = x; this.y = y; } |