Естественные науки

Нахождение центра тяжести

Я пытаюсь сделать свою игру. Она в формате 2D. Хотелось бы, что бы в ней была физика (точнее, механика) . С гравитацией я более-менее разобрался, а вот сделать так, чтобы объекты, задевая краешком другие, начинали крутиться, вращаться и т. д. , а не останавливаться, не получается. Я так думаю, для того, чтобы это реализовать, нужно знать центр тяжести всех объектов. Как его найти в реальном мире, я знаю, а как математически - нет. (Конечно, можно пытаться наугад поставить этот самый центр тяжести, но объектов будет много, и вручную заниматься такими делами - грешно) . Может, кто-нибудь знает решение этой проблемы, или в курсе, как такие вещи реализовываются при программировании?
Насчет «грешно»
- рассмешил )))

Твои фигурки должны быть для машины описаны математически :
или формулы или координаты характерных точек.

Считая что в углах по единичной массе можно найти координаты
цт.

X =
сумма кординат точек по х делить на количество точек.

Y = сумма
кординат точек по y
делить на количество точек.

В общем случае интеграл по площади фигурки с можителем х
деленный на площадь.

Также по у. X=
∫∫x dS /∫∫ dS; Y= ∫∫y dS /∫∫
dS;
Раиса Нурмеева
Раиса Нурмеева
88 689
Лучший ответ
Для реальности нужно не только знать центр тяжести, но и уметь определять с какой скоростью будет вращаться объект после удара в ту или иную точку.
Скорость вращения будет сильно зависеть от того, насколько основная масса удалена от центра тяжести, то есть от момента инерции.
Пусть диск и кольцо одинаковых размеров и массы, тогда кольцо раскрутить труднее. Маховики делают с тяжёлым ободом, их трудно раскрутить и трудно остановить. Если силу приложить не к краю объекта, а по направлению, близкому к центру тяжести, то воздействие будет менее значительным.
Центр тяжести эквивалентен центру масс и через него проходя все оси главных моментов инерции, то есть при любом заданном направлении оси вращения, ось проходящая в этом направлении через центр тяжести позволяет телу легче раскручиваться (момент инерции вращения минимален для оси, проходящей именно через центр масс) . Для осей вращения удалённых момент инерции возрастает.
Придётся изучать динамику, помимо статики )).
Лариса Хотинь
Лариса Хотинь
70 042
.Если фигур произвольная, то её триангулируют (разбивают на треугольники) , а затем вычисляют центр масс для точек-центров пересечений медиан каждого треугольника. Как найти центр масс для точек - тут
https://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BD%D1%82%D1%80_%D0%BC%D0%B0%D1%81%D1%81. Впрочем, думаю что чтобы единожды найти центр масс можно с триангулированием не заморачиваться, а тупо разбить картинку на пиксели и посчитать центр для нескольких тысяч точек, для компьютера это плёвое дело.
Если фигуры не произвольные, а какие-нибудь прямоугольники, для них центр масс уже найден мматематически.
Итого:
1) Тело разбивается на достаточно однородные по плотности фрагменты, центр масс для которых можно найти по готовым формулам - отсюда по общей формуле (см. любой учебник по физике для 1 курса вуза) находится центр масс тела.

2) Считается момент инерции по известной формуле (тоже есть в учебниках) , исходя из разбиения тела на однородные фрагменты (см. п. 1)

Ну а дальше динамика не такая уж и сложная: при вращении момент инерции - аналог массы при прямолинейном движении, вместо линейного ускорения - угловое. Нужно только не забыть про силы трения. Численно всё быстро считается - для современных компьютеров задача плёвая..
Статику изучи - раздел механики.
Ирина Семенюк
Ирина Семенюк
3 905