Вопрос о ближайшем подходе к математике / физике - PullRequest
7 голосов
/ 03 апреля 2010

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

Ближайший подход может быть успешным, даже если реального столкновения не будет. Итак, в настоящее время я использую 10-шаговый метод и вычисляю расстояние между двумя сферами, когда они движутся вдоль двух сегментов. Таким образом, в основном длина каждого сегмента является ходом объекта на шаге физики, а радиус - радиусом объекта. Шагая, я могу сказать, где они сталкиваются, и сталкиваются ли они (в некотором роде; для САМОЙ части.) ..

У меня такое ощущение, что может быть что-то лучше. Хотя я в некотором роде полагаю, что требуется первый ближайший вызов подхода, я думаю, что метод, следующий сразу за ним, является слабым TAD. Может кто-нибудь мне помочь? Я могу проиллюстрировать это при необходимости.

Большое спасибо! альтернативный текст http://img444.yfrog.com/img444/6692/caquestion.png

Ответы [ 2 ]

3 голосов
/ 03 апреля 2010

(я не знаю, как разместить графику; терпите меня.)

Хорошо, у нас есть две сферы с радиусами r1 и r2, начинающиеся в точках X1 и X2, движущиеся со скоростями V1 и V2 (X и V - векторы).

Скорость сферы 1, если смотреть из сферы 2, равна

V = V1-V2

и его направление

v = V/|V|

Дистанция сферы 1 должна пройти (в рамках сферы 2) до ближайшего сближения

s = Xv

А если X - начальное расстояние, то расстояние ближайшего приближения равно

h = |X - Xv|

Это где графика поможет. Если h> r1 + r2, столкновения не будет. Предположим, что h

u = sqrt((r1 + r2)^2 - h^2)

Таким образом, пройденная сферой сфера 1 равна

s - u

Теперь просто посмотрите, перемещается ли сфера 1 так далеко за данный интервал Если так, то вы точно знаете, когда и где были сферы (вы должны отойти от рамки сферы 2, но это довольно просто). Если нет, то столкновения нет.

3 голосов
/ 03 апреля 2010

Ближайший подход может быть выполнен без имитации времени, если функция положения обратима и явна.

  1. Выберите путь и объект.
  2. Найдите точку на пути, где два пути находятся ближе всего. Если время имеет границы (например, пути являются отрезками), игнорируйте границы на этом шаге.
  3. Найдите время, в которое объект находится в точке предыдущего шага.
  4. Если время имеет границы, ограничьте выбранное время границами.
  5. Рассчитать положение другого объекта в момент времени от предыдущего шага.
  6. Проверьте, не перекрываются ли объекты.

Это не будет работать для всех путей (например, некоторых кубических), но должно работать для линейных путей.

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