我为每个四轴飞行器创建一个点列表,以便在它周围创建一个安全区域,并避免其他四轴飞行器彼此靠近。
我的代码已经创建了一个点列表来创建一个安全区域(因为距离从-20到+20,它创建了1600点(40 * 40))。
现在我要比较无人机[k] .posicao_atual(实际位置)是否在其他无人机的安全区域内。如果是的话,我现在只想要调试消息。
我要求代码除了无人机本身创建的列表 之外的所有其他列表的代码(最后的If语句,它永远不会成真。即使无人机在安全区域,它永远不会进入if语句)。
任何帮助?
PointF posicao_desejada = new Point(0, 0);
PointF posicao_atual = new Point(0, 0);
List<PointF>[] lista_colisoes;
int distancia = 20;
for (int i = 0; i < drone.Length; i++)
{
lista_colisoes[i] = new List<PointF>();
}
for (int k = 0; k < drone.Length; k++)
{
lista_colisoes[k].Clear();
for (int i = (int)posicao_atual.X - distancia; i <= (int)posicao_atual.X + distancia; i++)
{
for (int j = (int)posicao_atual.Y - distancia; j <= (int)posicao_atual.Y + distancia; j++)
{
lista_colisoes[k].Add(new PointF(i, j));
}
}
if (Enumerable.Range(0, drone.Length).Where(i => i != k).
Any(list => lista_colisoes.Any(ponto => ponto.Equals(drone[k].posicao_atual))))
{
Debug.WriteLine("Entered Safe Area")
//never enters here
}
}
绿色无人机位于红色无人机安全区内,并没有进入if声明。