C # Алгоритм маршрутизации для перемещения объекта из точки (X, Y) в точку (X, Y) - PullRequest
0 голосов
/ 21 марта 2011

Данный объект, который может двигаться вперед, назад, влево и вправо в заданной точке 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.
}

1 Ответ

0 голосов
/ 22 марта 2011

Если я правильно понимаю, вам нужно определить ваше направление.

Также вы можете запросить текущую позицию.

Можете ли вы сохранить свои последние координаты перед переходом на новую позицию?

Если это так, используйте базовую тригонометрию, чтобы извлечь угол, в котором движется ваш объект на основе последней координаты и новой координаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...