张世豪
4 天以前 32c98d4855b6178554c787103dc956d161e152b3
src/lujing/Lunjingguihua.java
@@ -22,7 +22,22 @@
        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,
@@ -44,7 +59,18 @@
        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,