ux3sty писал:
MrKerbMan, Я в коде малясь заблудился, не помешало бы комменты понаставить.
Velosity.x = Velosity.x (Force.x*0.0417) / (2 * Mass);
Почему ты здесь ускорение делишь на два?
И самое главное, что сразу видно в программе: у тебя неправильно записан закон сохранения импульса.
Если бы был записан правильно, то при отсутствии гравитации курсора, когда все тела сливаются воедино, итоговое тело должно стоять.
Ты не учитываешь скорость второго тела.
V=(m1 m2)/((m1*v1) (m2*v2))
И можешь сделать так, чтоб рисовались линии силового поля?
Эта формула и высчитывает скорость второго тела в отношении масс тел.
Вот ВСЯ формула сложения скоростей:
b2->Velosity.x = b2->Velosity.x *(b2->Mass / Mass);
b2->Velosity.y = b2->Velosity.y *(b2->Mass / Mass);
Velosity = (Velosity b2->Velosity);
b2->Velosity - скорость второго тела.
И можешь сделать так, чтоб рисовались линии силового поля?
Какого нах силового поля, у меня гравитация!
Почему ты здесь ускорение делишь на два?
Так формулу вывел.
Лякуша (Наш главный физик) вроде не был против.
Сообщение отредактировал 20 апреля 2014 - 22:22