Я использую Сегмент для Сегментации самого близкого метода подхода, который произведет самое близкое расстояние между двумя сегментами длины. Каждый сегмент соответствует источнику объекта сферы и месту назначения. Скорость просто от одной точки к другому.
Самый близкий Подход может успешно выполниться, даже когда не будет реальной коллизии. Так, я в настоящее время использую метод с 10 шагами и вычисляю расстояние между 2 сферами, поскольку они проходят эти два сегмента. Так, в основном длина каждого сегмента является пересечением объекта на шаге физики, и радиус является радиусом объектов. Путем продвижения я могу сказать, где они сталкиваются, и если они сталкиваются (Вид; по большей части.)..
Я получаю чувство, что могло быть что-то лучше. В то время как я сортирую, полагают, что первый самый близкий вызов подхода требуется, я думаю, что метод сразу после него НЕМНОГО слаб. Кто-либо может выручить меня? Я могу проиллюстрировать это в случае необходимости.
Большое спасибо!
(источник: yfrog.com)
(Я не знаю, как размещать графику; потерпите меня.)
Хорошо, у нас есть две сферы с радиусами 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 Таким образом, расстояние, которое прошла сфера 1, равно Теперь просто посмотрим, перемещается ли сфера 1 так далеко в данном интервале. Если да, то вы точно знаете, когда и где были сферы (вы должны вернуться назад из кадра сферы 2, но это довольно просто). Если нет, то столкновения нет. u = sqrt((r1 + r2)^2 - h^2)
s - u
Ближайший подход может быть выполнен без моделирования времени, если функция положения является обратимой и явной.
Это не будет работать для всех путей (например, некоторых кубических), но должно работать для линейных путей.