2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Упругий нецетральный удар двух движущихся шаров
Сообщение21.01.2015, 20:45 
Здравствуйте. В универе задали написать игру бильярд, но использовать готовые физ. движки запретили. Пришёл в ступор на той стадии, когда нужно смоделировать упругий нецентральный удар между двумя движущимися шарами. В интернете на удивление нашёл только взаимодействие подвижного шара с неподвижным. Уважаймые форумчане, подскажите пожалуйста либо дайте материал где это описывается. Грубо говоря, мне нужно зная координаты двух шаров и их векторов скорости получить новые вектора скорости после столкновения в общем случае.

 
 
 
 Re: Упругий нецетральный удар двух движущихся шаров
Сообщение21.01.2015, 20:50 
convict
Смотрите в ЛЛ(I)

 
 
 
 Re: Упругий нецетральный удар двух движущихся шаров
Сообщение21.01.2015, 20:57 
$$m_1(\overline v_1^+-\overline v_1)=\overline R,\quad m_2(\overline v_2^+-\overline v_2)=-\overline R,\quad T^+=T$$
$m_i$ -- массы шаров; $\overline v_i^+,\overline v_i$ -- скорости шаров после удара и до удара соответственно; $\overline R$ -- "сила" реакции направлена вдоль прямой, соединяющей центры шаров; $T^+,T$ -- кинетическая энергия системы после удара и до удара соответственно

 
 
 
 Re: Упругий нецетральный удар двух движущихся шаров
Сообщение21.01.2015, 21:36 
Ms-dos4Б незнакомая мне аббревиатура. Не могли бы вы расшифровать?
Oleg Zubelevich, в моём случае масса одинакова. Про сохранение энергии понятно. Но как посчитать тот самый вектор R?

 
 
 
 Re: Упругий нецетральный удар двух движущихся шаров
Сообщение21.01.2015, 23:29 
Аватара пользователя
convict в сообщении #966428 писал(а):
незнакомая мне аббревиатура. Не могли бы вы расшифровать?

Ландау, Лифшиц. Теоретическая физика. Том 1. Механика.

Ландау-Лифшица часто называют "библией" теорфизики.

----------------

Задача про бильярд становится намного сложнее, если требуется учитывать качение... Вот тут-то Oleg Zubelevich и развернётся...

 
 
 
 Re: Упругий нецетральный удар двух движущихся шаров
Сообщение22.01.2015, 08:22 
convict в сообщении #966398 писал(а):
В интернете на удивление нашёл только взаимодействие подвижного шара с неподвижным. Уважаймые форумчане, подскажите пожалуйста либо дайте материал где это описывается. Грубо говоря, мне нужно зная координаты двух шаров и их векторов скорости получить новые вектора скорости после столкновения в общем случае.

Найденного в интернете, вообще говоря, достаточно: переходите в систему, где один шар неподвижен, применяете найденное, переходите обратно.

 
 
 
 Re: Упругий нецетральный удар двух движущихся шаров
Сообщение22.01.2015, 10:58 
Код:
    float k = 2.0f; // k = [ 1.0f ... 2.0f ]
    float coef = mass / (mass + whom->mass);
    Vertex3Df relSpeed = speed - whom->speed;
    Vertex3Df nRelSpeed = -((-normal) & relSpeed) * normal;
    nRelSpeed *= k;
    speed -= (1.0f - coef) * nRelSpeed;
    whom->speed += coef * nRelSpeed;

тут ООП-ный код, текущий объект - шар, а whom - шар с которым столкновение происходит.
mass, speed поля масс и скоростей соответственно, raduis в данном расчете не нужен
normal - нормаль столкновения, в сущности вектор соединяющий центры шаров, но единичной длины. в какую сторону направлен уже не помню.
ессесно используется векторная алгебра, так что operator& - скалярное умножение векторов (dot product).
k контролирует степень упругости удара, при 2 - абсолютно упругий.

 
 
 
 Re: Упругий нецетральный удар двух движущихся шаров
Сообщение22.01.2015, 11:06 
convict в сообщении #966428 писал(а):
оём случае масса одинакова. Про сохранение энергии понятно. Но как посчитать тот самый вектор R?

я Вам написал 5 уравнений с 5 неизвестными, что еще надо програмеру для счастья?

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group