Кратчайший путь к перекрестку - PullRequest
3 голосов
/ 27 января 2010

Я задавал этот вопрос около 2 месяцев назад, но не нашел ни одного из ответов, которые были бы достаточно полезны. Поэтому я даю ему еще один шанс. Я думаю, что это была моя вина, что я недостаточно хорошо ее описал. Итак, давайте попробуем еще раз.


(источник: bja888.com )

Вот приблизительное представление о том, чего я пытаюсь достичь.
Цель состоит в том, чтобы отправить снаряд из точки T, чтобы перехватить объект, представленный точкой R.
Что известно:

  1. Местоположение объекта R
  2. Направляющий объект R движется
  3. Скорость, с которой движется объект R
  4. Местоположение объекта Т
  5. Скорость, с которой будет путешествовать объект T

Я ищу направление, в которое должен быть отправлен объект T, и, таким образом, найду место, в котором они будут сталкиваться Либо один.

Например: если ...

  1. Местоположение R было (1,5)
  2. R движется под углом 45 градусов (относительно d)
  3. R движется со скоростью 1 единица в секунду
  4. Т находится по адресу (1,1)
  5. T также движется со скоростью 1 единица в секунду


(источник: bja888.com )

L определяет местоположение столкновения в (3,3)

Ответы [ 2 ]

1 голос
/ 27 января 2010

Существует бесконечное количество возможностей. Рассмотрим концентрическую серию окружностей из точек R и T, представляющих расстояние, которое каждый может пройти за увеличивающееся время. Там, где пересекаются окружности, есть точка столкновения, вектор между точкой столкновения и T - это то место, куда T должен был быть нацелен на данный момент. Если вы ищете кратчайший путь, вам нужно получить нормаль к пути R и запустить T в соответствующее время, рассчитав время, которое требуется T для прохождения этого расстояния, чтобы оно достигло того же самого время как R.

0 голосов
/ 27 января 2010

Предполагается, что воздушное трение, гравитация, внешние силы, ракеты со скоростью, близкой к скорости света, нарушение физических законов и т. Д.

Предположим, изначально R = ( x , y ) и T = (0, 0). (Измените свою систему координат, если T не в начале координат).

Предположим, что скорость T постоянно (cos & theta; , sin & theta; ), где & theta; неизвестна, но не зависит от времени. (Измените свою систему координат или единицу времени, если скорость, если не 1.)

Предположим, что скорость R постоянно ( v , 0). (Измените свою систему координат, если скорость не вдоль горизонтали.)

Предположим, что в момент времени t два объекта сталкиваются. Итак, у нас есть 2 уравнения и 2 неизвестных:

  • т cos & theta; = x + вт
  • t sin & theta; = y

Так очевидно

  • т 2 = ( x + вт ) 2 + y 2 .

Решите это квадратное уравнение, чтобы получить t . Включите его в уравнение y , чтобы получить & theta; . Что и требовалось доказать.

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