NormalPull 拉散函数 加入判断第一个图案是否是平面
This commit is contained in:
parent
3a6de2e67f
commit
4cd26f6b62
@ -2062,6 +2062,12 @@ namespace FlightRouteV2
|
||||
Vector3[] new_aVecs = aVecs.ToArray(); //a图副本
|
||||
Vector3[] new_bVecs = bVecs.ToArray(); //矩阵副本
|
||||
int planeCou = new_aVecs.Length; //获取飞机总数
|
||||
///判断a图是不是平面
|
||||
if (!(planeCou == FindMaxPlaneIndices(aVecs).Count))
|
||||
{
|
||||
StrPrint("-------,故不能做拉散图案操作-------");
|
||||
return null;
|
||||
}
|
||||
///a图b图 中心
|
||||
Vector3 aCenterPos = GetPosCenter(new_aVecs, false);
|
||||
///判断bVec 矩阵的数量长宽
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -40,39 +40,39 @@ namespace FlyCube
|
||||
//创建一个 主画布对象
|
||||
TopCanvas = new MainCanvas(this.LayerPlane);
|
||||
|
||||
List<Vector3[]> abVecs = FileBase.TxtToPos("C:/Users/szdot/Desktop/1.txt", out string[] fightNames);//从txt文件里面读取航点 信息
|
||||
Vector3[] aVecs = abVecs[0].ToArray();
|
||||
Vector3[] bVecs = abVecs[1].ToArray();
|
||||
Vector3[] new_bVecs = FlyVecFun.ContactABOut(aVecs, bVecs, StrPrint);
|
||||
List<List<Vector3>> listVecs = FlyVecFun.CollisionLayer(aVecs, new_bVecs, StrPrintAsync);
|
||||
//List<Vector3[]> abVecs = FileBase.TxtToPos("C:/Users/szdot/Desktop/1.txt", out string[] fightNames);//从txt文件里面读取航点 信息
|
||||
//Vector3[] aVecs = abVecs[0].ToArray();
|
||||
//Vector3[] bVecs = abVecs[1].ToArray();
|
||||
//Vector3[] new_bVecs = FlyVecFun.ContactABOut(aVecs, bVecs, StrPrint);
|
||||
//List<List<Vector3>> listVecs = FlyVecFun.CollisionLayer(aVecs, new_bVecs, StrPrintAsync);
|
||||
|
||||
string txta = "";
|
||||
string txtb = "";
|
||||
string txtd = "";
|
||||
for (int i = 0; i < bVecs.Length; i++)
|
||||
{
|
||||
txta += i + " 0" + " " + listVecs[0][i].X + " " + listVecs[0][i].Y + " " + listVecs[0][i].Z + "\r\n";
|
||||
txtb += i + " 0" + " " + listVecs[1][i].X + " " + listVecs[1][i].Y + " " + listVecs[1][i].Z + "\r\n";
|
||||
txtd += i + " 0" + " " + new_bVecs[i].X + " " + new_bVecs[i].Y + " " + new_bVecs[i].Z + "\r\n";
|
||||
}
|
||||
string patha = "C:/Users/szdot/Desktop/a.txt";
|
||||
string pathb = "C:/Users/szdot/Desktop/b.txt";
|
||||
string pathd = "C:/Users/szdot/Desktop/d.txt";
|
||||
if (File.Exists(patha))
|
||||
{
|
||||
File.Delete(patha);
|
||||
}
|
||||
SaveFile(patha, txta);
|
||||
if (File.Exists(pathb))
|
||||
{
|
||||
File.Delete(pathb);
|
||||
}
|
||||
SaveFile(pathb, txtb);
|
||||
if (File.Exists(pathd))
|
||||
{
|
||||
File.Delete(pathd);
|
||||
}
|
||||
SaveFile(pathd, txtd);
|
||||
//string txta = "";
|
||||
//string txtb = "";
|
||||
//string txtd = "";
|
||||
//for (int i = 0; i < bVecs.Length; i++)
|
||||
//{
|
||||
// txta += i + " 0" + " " + listVecs[0][i].X + " " + listVecs[0][i].Y + " " + listVecs[0][i].Z + "\r\n";
|
||||
// txtb += i + " 0" + " " + listVecs[1][i].X + " " + listVecs[1][i].Y + " " + listVecs[1][i].Z + "\r\n";
|
||||
// txtd += i + " 0" + " " + new_bVecs[i].X + " " + new_bVecs[i].Y + " " + new_bVecs[i].Z + "\r\n";
|
||||
//}
|
||||
//string patha = "C:/Users/szdot/Desktop/a.txt";
|
||||
//string pathb = "C:/Users/szdot/Desktop/b.txt";
|
||||
//string pathd = "C:/Users/szdot/Desktop/d.txt";
|
||||
//if (File.Exists(patha))
|
||||
//{
|
||||
// File.Delete(patha);
|
||||
//}
|
||||
//SaveFile(patha, txta);
|
||||
//if (File.Exists(pathb))
|
||||
//{
|
||||
// File.Delete(pathb);
|
||||
//}
|
||||
//SaveFile(pathb, txtb);
|
||||
//if (File.Exists(pathd))
|
||||
//{
|
||||
// File.Delete(pathd);
|
||||
//}
|
||||
//SaveFile(pathd, txtd);
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
@ -90,10 +90,12 @@ namespace FlyCube
|
||||
Vector3[] aVecs = abVecs[0].ToArray();
|
||||
Vector3[] bVecs = abVecs[1].ToArray();
|
||||
//Vector3[] new_bVecs = FlyVecFun.ContactABOut(aVecs, bVecs, StrPrint);
|
||||
Vector3[] new_aVecs = FlyVecFun.NormalPull(aVecs, bVecs, StrPrintAsync);
|
||||
//Vector3[] new_aVecs = FlyVecFun.NormalPull(aVecs, bVecs, StrPrintAsync);
|
||||
|
||||
List<int> mappingId = new List<int>() { 1,2,3,4,10,7,5,8,9,6};
|
||||
|
||||
bool isPass;
|
||||
Task<List<List<Vector3>>> reTask = Task.Run(() => FlyVecFun.ABypassB(new_aVecs, bVecs, StrPrintAsync, GetVal, cts.Token, out isPass));
|
||||
Task<List<List<Vector3>>> reTask = Task.Run(() => FlyVecFun.ABypassB(aVecs, bVecs, StrPrintAsync, GetVal, cts.Token, out isPass, mappingId));
|
||||
List<List<Vector3>> re = await reTask;
|
||||
|
||||
string txta = "";
|
||||
@ -115,7 +117,7 @@ namespace FlyCube
|
||||
{
|
||||
txtc += i + " 0" + " " + re[2][i].X + " " + re[2][i].Y + " " + re[2][i].Z + "\r\n";
|
||||
}
|
||||
txtd += i + " 0" + " " + new_aVecs[i].X + " " + new_aVecs[i].Y + " " + new_aVecs[i].Z + "\r\n";
|
||||
txtd += i + " 0" + " " + bVecs[i].X + " " + bVecs[i].Y + " " + bVecs[i].Z + "\r\n";
|
||||
|
||||
}
|
||||
if (re.Count > 0)
|
||||
|
Loading…
Reference in New Issue
Block a user