Шары

NewUser
Сообщений: 40
Зарегистрирован: 02 дек 2008, 21:00

Шары

Сообщение NewUser » 19 ноя 2009, 20:02

Пишу прогу ,летают в замкнутой области много шариков ,мне надо просчитывать их соударения (нецентральный упругий удар) и рассчитать траекторию их отскока(вектор направления).Для каждого шара у меня имеются его координаты и вектор направления.
Помогите рассчитать угол поворота вектора направления после удара.
Последний раз редактировалось NewUser 29 ноя 2019, 19:48, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
grigoriy
Сообщений: 11916
Зарегистрирован: 18 ноя 2009, 21:00

Шары

Сообщение grigoriy » 19 ноя 2009, 21:19

Соедините центры 2-х сталкивющихся шаров и на этот отрезок (назовем AB)
спроектируйте скорости шаров. Назовем их нормальными проекциями.
Найдите также касательные проекции - проекции на перпендикулярное
к AB направление. Рассчитайте новые нормальные проекции скоростей
по формулам для центрального соударения. Касательные проекции
остаются неизменными.
Последний раз редактировалось grigoriy 29 ноя 2019, 19:48, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
fir-tree
Сообщений: 10669
Зарегистрирован: 19 июн 2008, 21:00

Шары

Сообщение fir-tree » 20 ноя 2009, 03:34

Причём отрезок надо брать в момент столкновения.
Последний раз редактировалось fir-tree 29 ноя 2019, 19:48, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
ALEX165
Сообщений: 10578
Зарегистрирован: 30 сен 2008, 21:00

Шары

Сообщение ALEX165 » 20 ноя 2009, 04:04

И если шары одинаковые, они просто обменяются нормальными проекциями скоростей.
Последний раз редактировалось ALEX165 29 ноя 2019, 19:48, всего редактировалось 1 раз.
Причина: test

Pyotr
Сообщений: 4896
Зарегистрирован: 19 авг 2008, 21:00

Шары

Сообщение Pyotr » 20 ноя 2009, 04:58

NewUser писал(а):Source of the post
Пишу прогу ,летают в замкнутой области много шариков ,мне надо просчитывать их соударения (нецентральный упругий удар) и рассчитать траекторию их отскока(вектор направления).Для каждого шара у меня имеются его координаты и вектор направления.
Помогите рассчитать угол поворота вектора направления после удара.

Если Вам удастся написать такую программу - попробуйте для какого-нибудь варианта обратить время. Вы будете удивлены тем, насколько быстро система "забудет" свою историю и сойдет c траектории, по которой она развивалась, когда время текло в положительном направлении. Отсюда вывод: строго считать эволюцию системы большого смысла не имеет, можно применить метод Монте-Карло.
Последний раз редактировалось Pyotr 29 ноя 2019, 19:48, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
grigoriy
Сообщений: 11916
Зарегистрирован: 18 ноя 2009, 21:00

Шары

Сообщение grigoriy » 20 ноя 2009, 06:01

fir-tree писал(а):Source of the post
Причём отрезок надо брать в момент столкновения.


Спасибо. Совершенно верно, забыл упомянуть.
Поскольку момент столкновения в программе отслеживается
по достижении расстоянием между поверхностями некоторой
минимальной величины, то нужно после вычисления
новых скоростей дать шарам разойтись на расстояние, превышающее
"допуск", прежде чем опять анализировать их близость.
Иначе может возникнуть "залипание" двух шаров - при малых
скоростях они не успеют за квант времени, принятый в программе,,
разойтись на расстояние, большее "допуска", как их опять заставляют
сталкиваться.
Последний раз редактировалось grigoriy 29 ноя 2019, 19:48, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
fir-tree
Сообщений: 10669
Зарегистрирован: 19 июн 2008, 21:00

Шары

Сообщение fir-tree » 20 ноя 2009, 06:30

Pyotr писал(а):Source of the post Если Вам удастся написать такую программу - попробуйте для какого-нибудь варианта обратить время. Вы будете удивлены тем, насколько быстро система "забудет" свою историю и сойдет c траектории, по которой она развивалась, когда время текло в положительном направлении. Отсюда вывод: строго считать эволюцию системы большого смысла не имеет, можно применить метод Монте-Карло.

Толковое замечание. Только надо пояснить, что забывает система свою историю из-за численных погрешностей.

grigoriy писал(а):Source of the post Иначе может возникнуть "залипание" двух шаров - при малыхскоростях они не успеют за квант времени, принятый в программе,,разойтись на расстояние, большее "допуска", как их опять заставляютсталкиваться.

Это вы что-то неправильно реализовывали. Если шары ещё перекрываются, но уже разлетаются (скорости направлены прочь друг от друга), их никто не должен заставлять сталкиваться.

A вообще имеет смысл рассчитать результат столкновения точно, a не для момента столкновения в выбранный дискрет времени, и подставить уже его результат.
Последний раз редактировалось fir-tree 29 ноя 2019, 19:48, всего редактировалось 1 раз.
Причина: test

Pyotr
Сообщений: 4896
Зарегистрирован: 19 авг 2008, 21:00

Шары

Сообщение Pyotr » 20 ноя 2009, 06:54

fir-tree писал(а):Source of the post
...Только надо пояснить, что забывает система свою историю из-за численных погрешностей.

B численном эксперименте, конечно, по этой причине. Ho удивительным образом эти "погрешности" приводят к увеличению, a никак не к уменьшению энтропии, подтверждая, тем самым, H-теорему Больцмана.
Последний раз редактировалось Pyotr 29 ноя 2019, 19:48, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
grigoriy
Сообщений: 11916
Зарегистрирован: 18 ноя 2009, 21:00

Шары

Сообщение grigoriy » 20 ноя 2009, 07:26

grigoriy писал(а):Source of the post Иначе может возникнуть "залипание" двух шаров - при малыхскоростях они не успеют за квант времени, принятый в программе,,разойтись на расстояние, большее "допуска", как их опять заставляютсталкиваться.

Это вы что-то неправильно реализовывали. Если шары ещё перекрываются, но уже разлетаются (скорости направлены прочь друг от друга), их никто не должен заставлять сталкиваться.

A вообще имеет смысл рассчитать результат столкновения точно, a не для момента столкновения в выбранный дискрет времени, и подставить уже его результат.
Может быть. Это было лет 15 назад, программу я писал ради тренировка при изучении Паскаля, тщательно
ee не вылизывал. Помню, что такой эффект на каком-то этапе был - мой несовершенный алгоритм
постоянно пускал такие пары "в обработку", не давая им двигаться. Вдруг и NewUser столкнется c этим.
Последний раз редактировалось grigoriy 29 ноя 2019, 19:48, всего редактировалось 1 раз.
Причина: test

NewUser
Сообщений: 40
Зарегистрирован: 02 дек 2008, 21:00

Шары

Сообщение NewUser » 20 ноя 2009, 12:05

Разложить по проекциям я в ближайшее время попробую.Про обращение времени вообще не понял, вы про что?A насчет посчитать зарание момент когда столкнутся,проблема в том , что тут летают не 2 и не 3 шарика, a до 50,радиусы и скорости у всех одинаковые.Погрешность в любом случае будет,легче развести их потом на мин.расстояния когда прога не скажет что они столкнулись.
Последний раз редактировалось NewUser 29 ноя 2019, 19:48, всего редактировалось 1 раз.
Причина: test


Вернуться в «Физика»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 1 гость