|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Feb 2012
Сообщений: 212
|
Проверка столкновения отрезков на числовой прямой зависящее от времени.
Здравствуйте, есть два отрезка на числовой прямой, движущихся по этой прямой с различной скоростью. Нужно написать функцию, которая вернула бы время когда эти отрезки столкнулись бы(если они вообще когда нибудь столкнутся). Для удобства я представил отрезки окружностями и вычислял время столкновения вот по этой формуле:
Где: s - текущие координаты окружности, v - скорость движения окружности, t - время, r - радиус. Нужно найти такое значение t когда расстояние между окружностями будет равно сумме их радиусов. "На бумаге" все работает как надо, но на практике... Первая проблема с которой столкнулся, это если скорость какого либо отрезка равна нулю, то уравнение не решается. Если на момент проверки отрезки уже пересекаются, то уравнение так же не имеет решений. прошу помочь найти универсальный способ проверки. |
|
|||||
Что бы решалось замените = на <=
Добавлено через 16 минут t >= s2-s1+r1+r2 / (v1 - v2) Решения не будет если v1 = v2 (скорости одинаковы и однонаправлены), либо если отрезки движутся в разные стороны.
__________________
משיח לא בא משיח גם לא מטלפן Последний раз редактировалось alatar; 30.07.2012 в 15:59. |
|
|||||
Регистрация: Feb 2012
Сообщений: 212
|
alatar
Не совсем понял, что в данном случае есть t? Мне казалось что формула упрощается до квадратного уравнения корни которого являются временем начала и конца столкновения. И не будет ли ответ разным если поменять окружности местами? Т.е. есть ли разница между этим t >= s2-s1+r1+r2 / (v1 - v2) и этим t >= s1-s2+r2+r1 / (v2 - v1) выражением? |
|
|||||
t — время.
Это не квадратное уравнение. Добавлено через 3 минуты 1. У вас не равенство. 2. Зачем вы возвели обе части уравнения в квадрат? 3. Из пункта А в пункт Б едет Добавлено через 18 минут Цитата:
Вот ваша формула: Вот она же, только в нормальном виде: Добавлено через 32 минуты Пардон, первый раз неправильно вывел
__________________
משיח לא בא משיח גם לא מטלפן Последний раз редактировалось alatar; 30.07.2012 в 17:39. |
|
|||||
Регистрация: Feb 2012
Сообщений: 212
|
alatar
Ну вот если подставить в мою формулу значения: s1=21, v1= -10, r1=1 и s2=5, v2= 10, r2=2, то полученные корни уравнения будут t1 = 0.65, t2 = 0.95, что логически верно. Едущие друг другу на встречу поезда столкнутся локомотивами в 0.65 ед. времени, а их последние вагоны разъедутся в 0.95 ед. времени. Если использовать вашу формулу заменить, <= на = и менять местами s1 и s2 то можно получить те же ответы, что и у меня, но только гораздо проще, спасибо! Не, ну понятно что время А что за время? Что означает? Последний раз редактировалось PlutDem; 30.07.2012 в 17:59. |
|
|||||
Регистрация: Feb 2012
Сообщений: 212
|
|
|
|||||
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
Регистрация: Feb 2012
Сообщений: 212
|
alatar
Моя ошибка, s1=21, в этом случае все правильно. Ваша формула: работает правильно, правда не понятно что она находит, конец или начало столкновения. Решив несколько примеров, пришел к выводу, что все таки конец, но как тогда найти начало? |
|
|||||
Для данных значений:
Конец столкновения Цитата:
Цитата:
Добавлено через 2 минуты Если имеется решение, конечно.
__________________
משיח לא בא משיח גם לא מטלפן |
Часовой пояс GMT +4, время: 13:38. |
|
« Предыдущая тема | Следующая тема » |
|
|