水平均分和垂直均分加入提示
This commit is contained in:
parent
be09eef794
commit
7d8646b4d8
@ -13,6 +13,7 @@ using System.Threading.Tasks;
|
|||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
using Plane.Geography;
|
using Plane.Geography;
|
||||||
using Plane.Windows.Messages;
|
using Plane.Windows.Messages;
|
||||||
|
using System.Windows;
|
||||||
|
|
||||||
namespace Plane.FormationCreator.ViewModels
|
namespace Plane.FormationCreator.ViewModels
|
||||||
{
|
{
|
||||||
@ -277,7 +278,11 @@ namespace Plane.FormationCreator.ViewModels
|
|||||||
double tlng = 0;
|
double tlng = 0;
|
||||||
double avgl = 0;
|
double avgl = 0;
|
||||||
|
|
||||||
|
if (Alert.Show("本操作将导致飞机位置重新排列,编号最小的飞机在最左边,您确定要继续吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Warning)
|
||||||
|
== MessageBoxResult.OK)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var selectedCopter = _copterManager.SelectedCopters.FirstOrDefault();
|
var selectedCopter = _copterManager.SelectedCopters.FirstOrDefault();
|
||||||
bool copterisselect;
|
bool copterisselect;
|
||||||
@ -327,7 +332,7 @@ namespace Plane.FormationCreator.ViewModels
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
///////////////////////
|
///////////////////////
|
||||||
@ -354,61 +359,64 @@ namespace Plane.FormationCreator.ViewModels
|
|||||||
|
|
||||||
double avgl = 0;
|
double avgl = 0;
|
||||||
|
|
||||||
|
if (Alert.Show("本操作将导致飞机位置重新排列,编号最小的飞机在最上边,您确定要继续吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Warning)
|
||||||
//////////////////////
|
== MessageBoxResult.OK)
|
||||||
|
|
||||||
var selectedCopter = _copterManager.SelectedCopters.FirstOrDefault();
|
|
||||||
bool copterisselect;
|
|
||||||
int selectednumber = _copterManager.SelectedCopters.Count() - 1;
|
|
||||||
for (int i = 0; i < _flightTaskManager.SelectedTask.SingleCopterInfos.Count; i++)
|
|
||||||
{
|
{
|
||||||
copterisselect = false;
|
|
||||||
selectedCopter = _flightTaskManager.SelectedTask.SingleCopterInfos[i].Copter;
|
//////////////////////
|
||||||
foreach (var capter in _copterManager.SelectedCopters)
|
|
||||||
|
var selectedCopter = _copterManager.SelectedCopters.FirstOrDefault();
|
||||||
|
bool copterisselect;
|
||||||
|
int selectednumber = _copterManager.SelectedCopters.Count() - 1;
|
||||||
|
for (int i = 0; i < _flightTaskManager.SelectedTask.SingleCopterInfos.Count; i++)
|
||||||
{
|
{
|
||||||
if (capter == selectedCopter)
|
copterisselect = false;
|
||||||
copterisselect = true;
|
selectedCopter = _flightTaskManager.SelectedTask.SingleCopterInfos[i].Copter;
|
||||||
|
foreach (var capter in _copterManager.SelectedCopters)
|
||||||
|
{
|
||||||
|
if (capter == selectedCopter)
|
||||||
|
copterisselect = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
if (copterisselect)
|
||||||
|
{
|
||||||
|
|
||||||
|
tlat = _flightTaskManager.SelectedTask.SingleCopterInfos[i].TargetLat;
|
||||||
|
if (minlat == 0)
|
||||||
|
minlat = tlat;
|
||||||
|
if (tlat > maxlat)
|
||||||
|
maxlat = tlat;
|
||||||
|
else if (tlat < minlat)
|
||||||
|
minlat = tlat;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (copterisselect)
|
avgl = (maxlat - minlat) / selectednumber;
|
||||||
|
int coptnum = 0;
|
||||||
|
|
||||||
|
for (int i = 0; i < _flightTaskManager.SelectedTask.SingleCopterInfos.Count; i++)
|
||||||
{
|
{
|
||||||
|
copterisselect = false;
|
||||||
|
selectedCopter = _flightTaskManager.SelectedTask.SingleCopterInfos[i].Copter;
|
||||||
|
foreach (var capter in _copterManager.SelectedCopters)
|
||||||
|
{
|
||||||
|
if (capter == selectedCopter)
|
||||||
|
copterisselect = true;
|
||||||
|
|
||||||
tlat = _flightTaskManager.SelectedTask.SingleCopterInfos[i].TargetLat;
|
}
|
||||||
if (minlat == 0)
|
if (copterisselect)
|
||||||
minlat = tlat;
|
{
|
||||||
if (tlat > maxlat)
|
|
||||||
maxlat = tlat;
|
|
||||||
else if (tlat < minlat)
|
|
||||||
minlat = tlat;
|
|
||||||
|
|
||||||
|
_flightTaskManager.SelectedTask.SingleCopterInfos[i].TargetLat = maxlat - avgl * coptnum;
|
||||||
|
coptnum++;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///////////////////////
|
||||||
|
|
||||||
|
// await Task.Delay(100); // 如果不等待一段时间,很可能会再触发 DataStreamReceived 事件导致飞行器重新出现在地图上。
|
||||||
}
|
}
|
||||||
avgl = (maxlat - minlat) / selectednumber;
|
|
||||||
int coptnum = 0;
|
|
||||||
|
|
||||||
for (int i = 0; i < _flightTaskManager.SelectedTask.SingleCopterInfos.Count; i++)
|
|
||||||
{
|
|
||||||
copterisselect = false;
|
|
||||||
selectedCopter = _flightTaskManager.SelectedTask.SingleCopterInfos[i].Copter;
|
|
||||||
foreach (var capter in _copterManager.SelectedCopters)
|
|
||||||
{
|
|
||||||
if (capter == selectedCopter)
|
|
||||||
copterisselect = true;
|
|
||||||
|
|
||||||
}
|
|
||||||
if (copterisselect)
|
|
||||||
{
|
|
||||||
|
|
||||||
_flightTaskManager.SelectedTask.SingleCopterInfos[i].TargetLat = maxlat - avgl * coptnum;
|
|
||||||
coptnum++;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////
|
|
||||||
|
|
||||||
// await Task.Delay(100); // 如果不等待一段时间,很可能会再触发 DataStreamReceived 事件导致飞行器重新出现在地图上。
|
|
||||||
|
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user