И так, я таки посидел над физикой и вот что "насидел".
Скажу честно, что формулы товарища
epros не понял
*правка* добавляю картинку, чтобы приблизительно понимать какого типа физика имеется ввиду. игра не моя, но смысл в общем похож :)
Да, и еще упомяну что весь расчет производится пошагово, т.е. на каждый шаг я могу использовать предыдущие значения параметров.
За основу я решил взять "работу", ибо нашел зависимость крутящего момента от работы. Wikipedia говорит, что
. Т.е. имея работу, которую нужно сделать и количество оборотов колеса, я могу посчитать крутящий момент, т.е.
. Работой я представляю перемещение тела посредством силы трения качения на 10 м за 1 с. (как это постараюсь объяснить позже). Итого, получилось, что
. Я предположил, что скорость машины будет 10 м/с. Т.е. для перемещения нужно затратить n Джоулей на 1 с. Т.к. просчет у меня пошаговый, я в каждый момент времени имею некое dt. Отсюда следует, что если на 1 с. мне нужно n Джоулей, то для dt с. мне нужно dt * n Джоулей. Ах да, работу я еще умножаю на cos(угол_тела) чтобы выразить работу по смещению если тело находится под углом. По формуле крутящего момента приведенной выше я получаю нужное мне значение. Кстати, при вычислении момента я тоже использую dt, которое беру по принципу что объяснил чуть выше. Чтобы хоть как-то сдвинуть машинку с места, начальным rpm ведущего колеса я указываю 10. Когда "не ведущее" колесо достигает 10, к rpm прибавляется еще 10, и так далее (По этому rpm и вычисляется крутящий момент).
Да, вот некоторые константы:
масса - 50769.3 кг
радиус колеса - 0.5 м
Что-то даже ездит, вроде неплохо %)
Но, все же есть вопросы:
- насколько верны мои предположения и вычисления? чувствую, что нагородил всякого несовместимого :)
- движок учитывает силу тяжести и без меня (т.е. приковывает машинку к земли, а не держит в воздухе); нужно ли мне учитывать в формуле силы трения качения (
) силу тяжести, или нет?
- возможно, мне как-то по-другому нужно работать с rpm чтобы добиться большей скорости или плавности? (в целом можно задать вопрос: как найти максимальное rpm при котором будет наибольшая производительность?)
Принимаются любые советы и мнения :)
Также, как закончу с этим, хочу прикрутить "плавное замедление", как уже обсуждалось выше. Если я правильно понял википедию, то нужно отталкиваться от базовой формулы силы трения качения, но пока еще не понял как. Ну, и сопротивление воздуха тоже не помешает %)
П.С. Добавляю еще вот такой интересный график зависимости rpm от момента силы в реальных авто. Все пытаюсь придумать как же мне нарисовать такое для своей машинки, но все пока никак не придумаю.
Всем откликнувшимся спасибо!