From 0bc6b0ae3694c756fdcaa88e9e42d711c095bf63 Mon Sep 17 00:00:00 2001 From: tk Date: Mon, 24 Jun 2024 18:20:13 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E7=B1=BB=09=E5=9E=8B=E3=80=91?= =?UTF-8?q?=EF=BC=9Afix=20=E3=80=90=E4=B8=BB=09=E9=A2=98=E3=80=91=EF=BC=9A?= =?UTF-8?q?2d=E9=94=99=E5=B1=82=E5=87=BD=E6=95=B0=20=20=E6=B3=A8=E9=87=8A?= =?UTF-8?q?=20=20=E5=92=8C=20=E8=BE=93=E5=87=BA=E6=97=A5=E5=BF=97=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20=E3=80=90=E6=8F=8F=09=E8=BF=B0=E3=80=91=EF=BC=9A=20?= =?UTF-8?q?=09[=E5=8E=9F=E5=9B=A0]=EF=BC=9A=E6=97=A5=E5=BF=97=E4=B8=8D?= =?UTF-8?q?=E6=98=8E=E7=A1=AE=20=09[=E8=BF=87=E7=A8=8B]=EF=BC=9A=E6=98=8E?= =?UTF-8?q?=E7=A1=AE=E8=AF=B4=E6=98=8E=E5=8E=9F=E5=9B=A0=20=09[=E5=BD=B1?= =?UTF-8?q?=E5=93=8D]=EF=BC=9A=20=E3=80=90=E7=BB=93=09=E6=9D=9F=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # 类型 包含: # feat:新功能(feature) # fix:修补bug # docs:文档(documentation) # style: 格式(不影响代码运行的变动) # refactor:重构(即不是新增功能,也不是修改bug的代码变动) # test:增加测试 # chore:构建过程或辅助工具的变动 --- FlightRouteV2/FlightRouteV2.cs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) 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; } ///