-1

给定一个可以在给定 X,Y 点向前、向后、向左和向右移动的对象。如何使用给定的运动机制以最有效和最人性化的方式有效地将对象引导到 X、Y 点。

对象可以实时移动,你可以告诉他们“startMoving”和“stopMoving”。虽然作为一个额外的转折和我遇到的问题,对象的朝向是永远未知的,只有它的当前位置是已知的,所以算法必须“检测”方向。对象的位置以 500-1 秒的间隔在单独的线程中更新。可以在任何时候提出更新算法内位置的“请求”,但它不是立即可用的,算法必须考虑到这一点。执行 requestAndWaitForCoordUpdate() 之类的操作是完全可以接受的,但可能不需要。

这是一些示例代码:

public int[] currentCoords;
public void movement() {
  currentCoords[0] = 1005; // starting y coord
  currentCoords[1] = 1007; // starting x coord
  moveTo(1050, 1025);
}

public void moveTo(int x, int y) {
  ... how?
}

public void threadUpdatingCoords() {
   ... periodically check for source coord updates
   ... between 200ms and 1000ms apart.
}
4

1 回答 1

0

如果我理解正确,你需要确定你的方向。

此外,您可以查询您当前的位置。

你可以在去一个新位置之前存储你的最后一个坐标吗?

如果是这样,请使用基本三角法根据上一个坐标和新坐标提取对象移动的角度。

于 2011-03-21T21:06:43.517 回答