Пусть m1 m2 -- массы -- вектор разности центров кругов v1 v2 -- скорос

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
Пусть
m1, m2 -- массы,
r -- вектор разности центров кругов,
v1, v2 -- скорости до столкновения,
k -- "коэф восстановления" (от 0 до 1).
Найти:
v1', v2' -- скорости после столкновения.
Очевидно /*до столкновения*/ k(m1v1 + m2v2) = /*после столкновения*/ m1v1' + m2v2', но это только 2 уравнения для 4 неизвестных, однако если разложить скорости в проекции на r и перпендикулярную r (обозначим p), то столкновение незаметно во второй (трением пренебрегаем :) ):
<v1, p> = <v1', p> и <v2, p> = <v2', p> -- два недостающие уравнения.
Можно переписать всё в координатах:
дано: m1, m2, k, v1x, v1y, v2x, v2y, rx, ry (тогда px = ry, py = -rx);
найти: v1'x, v1'y, v2'x, v2'y.
Решение: решить СЛУ 4-го порядка:
m1 v1'x + m2 v2'x = k m1 v1x + k m2 v2x
m1 v1'y + m2 v2'y = k m1 v1y + k m2 v2y
v1'x ry - v1'y rx = v1x ry - v1y rx
v2'x ry - v2'y rx = v2x ry - v2y rx