我正在尝试从大约 90 个点的列表中计算 2 个点之间的数字差异。我到目前为止的代码:
int positiveCounter = 0;
int positiveResetCounter = currentWayPointID;
int negativeCounter = 0;
int negativeResetCounter = currentWayPointID;
while ((currentWayPointID + positiveResetCounter) != pos)
{
positiveCounter++;
positiveResetCounter++;
if(positiveResetCounter > navigationTrack.AllWayPoints.Count)
{
positiveResetCounter = 0;
}
}
while((currentWayPointID+negativeResetCounter) != pos)
{
negativeCounter++;
negativeResetCounter--;
if(negativeResetCounter < 0)
{
negativeResetCounter = navigationTrack.AllWayPoints.Count;
}
}
if(positiveCounter <= negativeCounter)
{
MoveForward();
}
else if(negativeCounter < positiveCounter)
{
// MoveBack();
}
这按预期工作,但更新处理太多了。我怎样才能以更少的税收方式做到这一点?为了提供更多背景信息,我列出了航点和车辆的列表,这些车辆在每辆车辆上移动到最接近我的鼠标位置的点。路径是圆形的,因此最后一个航路点首先连接(索引 0)。我正在尝试确定到每个航路点的最短路径以便前进或后退,上面的代码是我尝试计算要走的路。我不是在寻找一种让它移动的方法,因为它已经奏效了。