Показать сообщение отдельно
Старый 27.09.2009, 13:29   #23
rr333
Нуждающийся
 
Регистрация: 07.02.2009
Сообщений: 92
Написано 16 полезных сообщений
(для 38 пользователей)
Ответ: Кодим физику

Помогите разораться (рассматриваю только 2д-пространство):
В книге "Физика для разработчиков игр" есть такая формула нахождения силы, с которой разлетаются тела при столкновении:
F=(-vr(e+1))/(1/m1 +1/m2+n[((r1*n)/I1)*r1]+n[((r2*n)/I2)*r2]),
где vr-разница скоростей тел, e-коэфицент востановления, m1,m2-массы тел, n-единичный вектор нормали, r1,r2-вектора из центров тел в точку контакта, I1,I2-вращающие моменты тел.
vectora*vectorb=vectoraX*vectorbX+vectoraY*vectorb Y
vr=vi1-vi2, vi=линейная+угловая скорость. w-угловая, v-линейная скорость. Угловая ск-сть=w*r1X+w*r1Y(т.к. умножаем вектор на число) => vr=vi1X+vi1Y-vi2X-vi2Y+w1*r1X+w1*r1Y+w2*r2X+w2*r2Y.
Пусть весь знаменатель равен J. J=1/m1 +1/m2+n[((r1*n)/I1)*r1]+n[((r2*n)/I2)*r2].
Пусть z1=((r1*n)/I1) => z1=((r1X*nX+r1Y*nY)/I1) и z2 для 2ого тела соответственно.
J=1/m1+1/m2+nX(z1*r1X+z1*r1Y+z2*r2X+z2*r2Y)+nY(z1*r1X+z1*r1 Y+z2*r2X+z2*r2Y).
F=(-vr(e+1))/J. Но на практике результат не верен, и где-то тут у меня ошибка.
(Offline)
 
Ответить с цитированием