Показать сообщение отдельно
Старый 01.07.2016, 11:17   #11 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от romacool2 Посмотреть сообщение
вроде А и Б сделал но не могу понять как привязать длину круга которую я нашел чтоб выяснить столкнуться ли объекты или нет . в) Будем считать, что объекты должны столкнуться, если - возможное кратчайшее расстояние между ними меньше суммарной длины объектов И - это расстояние будет достигнуто в момент времени, превышающий t1.
М-да... Старался я, расписывал, разжевывал - да всё, видать, впустую.
Какие круги?! Зачем?!! Всё, что Вам нужно - это задать величины L1 и L2 (некие абстрактные "размеры"), потом найти расстояние наибольшего сближения Dmin, а затем проанализировать выполнение условия:
если Dmin ≤ L1 + L2, то столкновение произойдёт, в противном случае - нет.
Между прочим, точка "столкновения" вовсе не обязательно должна совпасть с точкой пересечения траекторий.
Сложность лишь в том, чтобы найти Dmin. Выражение для D(t) я Вам привёл в предыдущем посте, туда нужно подставить координаты от времени, продифференцировать по времени то, что получится, и результат приравнять к нулю. Писанины много, но в конце там должно получиться просто линейное уравнение.
Впрочем, как знаете: хотите рисовать круги - Ваше дело.

Ладно, вот я даже вывел выражение для tt (момент времени, соответствующий максимальному сближению объектов):
Название: TT_1.jpg
Просмотров: 63

Размер: 9.9 Кб
(обратите внимание на знак "-" перед дробью!).
Знаменатель этого выражения обращается в 0 при условии параллельности траекторий, но эту ситуацию мы должны исключить заранее, сделав в программе соответствующее ветвление.
Теперь вычисляем tt, и если оно положительно и превышает t1, то подставляем в формулу для D(t), тем самым находим расстояние наибольшего сближения, а дальше - как расписано выше (сопоставляем с L1+L2).
Уф! Больше, похоже, ничем помочь не могу. На СИ, к сожалению, не пишу (паскалист).
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070