diff --git a/FlightRouteV2/FlightRouteV2.cs b/FlightRouteV2/FlightRouteV2.cs index 998d59a..400a803 100644 --- a/FlightRouteV2/FlightRouteV2.cs +++ b/FlightRouteV2/FlightRouteV2.cs @@ -1554,24 +1554,24 @@ namespace FlightRouteV2 return re_bVecs; } /// - /// 智能错层 + /// 智能错层 说明:从A图上找出一个面(最多点组成的共面),以此面为错层基准,做错层计算。PS:A图 B图 都可以为多个平面图形组成,但这些图形都必须平行 /// /// 起始坐标集合 /// 终点做标集合 /// 日志输出 回调函数 /// 错层层高 - /// 返回一个二维向量坐标集合 middle[0]是第一个中间航点 middle[1]是第二个中间航点 返回空数组则代表两个图形不在一个平面上或者不够4个点 + /// 返回一个二维向量坐标集合 middle[0]是第一个中间航点 middle[1]是第二个中间航点 返回空数组有几种情况 1.A图直接飞B图无碰撞 2.A图未能找到4个点以上的共面 3.有碰撞可能是AB图初始就过近 4.AB图并不平行 public static List> CollisionLayer(Vector3[] aVecs, Vector3[] bVecs,SomeCalculateWay StrPrint, double layHight = 300) { long t = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); - StrPrint("-------错层,开始-------"); + //StrPrint("-------错层,开始-------"); List> re = new List>(); ///判断有没有碰撞 有碰撞继续 没有直接返回 List planesCollision = AirImitation(aVecs, bVecs); //获取碰撞组 if (planesCollision.Count == 0) { - StrPrint("没有检测到碰撞,故不用添加中间航点"); - StrPrint($"-------错层结束-------"); + StrPrint("执行成功:没有检测到碰撞,故不用添加中间航点"); + //StrPrint($"-------错层结束-------"); return re;//直接返回 } //获取飞机总数 @@ -1582,11 +1582,11 @@ namespace FlightRouteV2 ///把所有点压在 主面“共面”上 List maxVecsOfCoplane = FindMaxPlaneIndices(aVecs);// 找出A图共面最多点的索引 - StrPrint("正在进行“共面”检测,需要一些时间请耐心等待。。。"); + StrPrint("提示:正在进行“共面”检测,需要一些时间请耐心等待。。。"); if (maxVecsOfCoplane.Count < 4) //a图至少要有4个点 共面 { - StrPrint("a图案至少有4个点以上共面,否则不可执行错层处理"); - StrPrint($"-------错层结束-------"); + StrPrint("执行失败:起始图案至少有4个点以上共面"); + //StrPrint($"-------错层结束-------"); return re; } ///共面上取三个点 @@ -1637,15 +1637,15 @@ namespace FlightRouteV2 { re.Add(new_aVecs.ToList()); re.Add(new_bVecs.ToList()); - StrPrint($"错层成功"); + StrPrint($"执行成功。"); } else { - StrPrint($"检测有碰撞,错层失败"); + StrPrint($"执行失败:计算完成后,检测有碰撞。可能原因:1.起始图形或结束图形点阵距离有过近情况。2.起始图形和结束图形点阵所在面不平行"); } t = DateTimeOffset.UtcNow.ToUnixTimeSeconds() - t; StrPrint($"用时:{t}秒"); - StrPrint($"-------错层结束-------"); + //StrPrint($"-------错层结束-------"); return re; } ///