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

Цитата:
Сообщение от romacool2 Посмотреть сообщение
б) Найти время прохождения точки пересечения каждым из объектов и скорость каждого из них; не совсем понимаю как сделать, если бы объяснили или алгоритм решения подсказали было бы чюдно
Попробую.
Тут, вероятно, целесообразно ввести X и Y-компоненты вектора скорости для каждого из объектов. Например, так.
Пусть заданные координаты точек объектов a и b есть X1a, Y1a, X2a, Y2a, X1b, Y1b, X2b, Y2b. Тогда компоненты скорости объектов задаем так:
VaX = (X2a-X1a)/(t1-t0)
VaY = (Y2a-Y1a)/(t1-t0)
VbX = (X2b-X1b)/(t1-t0)
VaX = (Y2b-Y1b)/(t1-t0)
Абсолютные скорости объектов Va и Vb найдём по формулам
(Va)² = (VaX)² + (VaY)²
(Vb)² = (VbX)² + (VbY)²
Координаты Xa(t), Ya(t), Xb(t), Yb(t) объектов в любой момент времени можно сосчитать, как
Xa(t) = X1a + VaX*t
Ya(t) = Y1a + VaY*t
Xb(t) = X1b + VbX*t
Yb(t) = Y1b + VbY*t
Координаты точки пересечения траекторий X0 и Y0 мы уже вычислили. Времена ta и tb прохождения точки пересечения каждым из объектов находим, как
ta = t0 + (X0 - X1a)/VaX
tb = t0 + (X0 - X1b)/VbX
Теперь ищем минимальное расстояние.
Пусть D(t) - расстояние между объектами в любой момент времени t. Его можно найти из формулы
D(t) = √[(Xa(t) - Xb(t))² + (Ya(t) - Yb(t))²]
И теперь нужно найти сосчитать производную dD/dt, приравнять её к 0, определить время, соответствующее наибольшему сближению (обозначим, например, tt), найти D(tt) и сравнить с суммой длин объектов. Справитесь?
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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