| | |
| | | throw new IllegalStateException("Utility class"); |
| | | } |
| | | |
| | | // 5参数核心生成方法 |
| | | /** |
| | | * 生成割草路径段列表(5参数版本) |
| | | * 根据给定的多边形边界、障碍物、割草宽度、安全距离和模式,生成完整的割草路径规划 |
| | | * |
| | | * @param polygonCoords 多边形边界坐标字符串,格式:"x1,y1;x2,y2;x3,y3;..." 或 "(x1,y1);(x2,y2);..." |
| | | * 支持分号、空格、逗号等多种分隔符,会自动闭合多边形 |
| | | * @param obstaclesCoords 障碍物坐标字符串,格式:"(x1,y1;x2,y2;...)" 多个障碍物用括号分隔 |
| | | * 如果为空或null,则视为无障碍物 |
| | | * @param mowingWidth 割草宽度(米),字符串格式,如 "0.34" 表示34厘米 |
| | | * 如果为空或无法解析,默认使用0.34米 |
| | | * @param safetyDistStr 安全边距(米),字符串格式,用于内缩边界和障碍物外扩 |
| | | * 如果为空或null,将自动计算为 width/2 + 0.2米,确保割草机实体完全在界内 |
| | | * @param modeStr 路径模式字符串,"1" 或 "spiral" 表示螺旋模式,其他值表示平行模式(默认) |
| | | * @return 路径段列表,每个PathSegment包含起点、终点和是否为割草段的标志 |
| | | * 如果多边形坐标不足4个点,将抛出IllegalArgumentException异常 |
| | | */ |
| | | public static List<PathSegment> generatePathSegments(String polygonCoords, |
| | | String obstaclesCoords, |
| | | String mowingWidth, |
| | |
| | | return planner.generate(); |
| | | } |
| | | |
| | | // 4参数重载,适配 AddDikuai.java |
| | | /** |
| | | * 生成割草路径段列表(4参数版本) |
| | | * 这是5参数版本的重载方法,安全距离参数自动设为null,系统将使用默认计算值 |
| | | * 主要用于适配 AddDikuai.java 等不需要指定安全距离的场景 |
| | | * |
| | | * @param polygonCoords 多边形边界坐标字符串,格式:"x1,y1;x2,y2;x3,y3;..." |
| | | * @param obstaclesCoords 障碍物坐标字符串,格式:"(x1,y1;x2,y2;...)",可为空 |
| | | * @param mowingWidth 割草宽度(米),字符串格式,如 "0.34" |
| | | * @param modeStr 路径模式字符串,"1" 或 "spiral" 表示螺旋模式,其他值表示平行模式 |
| | | * @return 路径段列表,每个PathSegment包含起点、终点和是否为割草段的标志 |
| | | * 安全距离将自动计算为 width/2 + 0.2米 |
| | | */ |
| | | public static List<PathSegment> generatePathSegments(String polygonCoords, |
| | | String obstaclesCoords, |
| | | String mowingWidth, |