Название: Сила и масса Отправлено: Igors от Апрель 25, 2011, 06:05 Добрый день
Занимаюсь прикручиванием физического движка и "поплыл" в базовых понятиях физики :) Одна из задач дать пользователю ручки управления чтобы создавать различные "силы". Все прекрасно с силой типа "гравитация" - со школы помню что еще Галилей доказал что пушинка и дробинка падают с одинаковой скоростью в вакууме. Вызываю у движка метод applyForce и все работает. Однако вот ситуация: стоят 2 кубика одинакового размера. Один из них из картона, другой из стали (ну пользователь задал такие массы). Житейский опыт говорит что напр ветер может сдвинуть/увлечь кубик из картона но ничего не сможет поделать со стальным. Как так, это уже "другая сила" (не такая как гравитация)? Или это объясняется трением (покоя)? В общем - растерялся солдат :) Или вот те же 2 кубика движутся с одинаковой скоростью. Ясно что одна и та же сила может развернуть легкий кубик но только слегка притормозить тяжелый. Какой (удобный) параметр надо дать пользователю - или это должно быть автоматычно по законам физики? Буду благодарен за "разъяснение на пальцах" или толковые ссылки (просто гуглить "сила/масса" получается "стрельба по площадям") Спасибо Название: Re: Сила и масса Отправлено: Sancho_s_rancho от Апрель 25, 2011, 06:59 Я редко пишу такого рода посты, но тут не удержался.
Вы взорвали мне мозг. Более сумбурного "я спрашиваю сам незнаю что" я давно не встречал. В первом абзаце вы пишите про вакуум. Во втором резко появляется атмосфера (судя по слову ветер). Ну опустим ваш "ветер" и останется сила трения скольжения. Так сложно открыть в гугле Сила трения скольжения? и увидеть что там зависимость от веса тела? Еще неплохо открыть второй закон ньютона. Ну а расписывать все школьные формулы физики тут скорее всего никто не будет. Название: Re: Сила и масса Отправлено: Blackwanderer от Апрель 25, 2011, 07:03 С неподвижными предметами:
здесь работает сила трения покоя, которая (в простейшем случае) рассчитывается как n*m*g*cos(A) (n - коэффициент трения покоя, который зависит от пары соприкасающихся материалов, а А - угол между касательной к поверхности на которой находится тело и горизонтом). Соответственно, для того, чтобы сдвинуть предмет к нему надо приложить силу большую, чем сила трения покоя. С движущимися телами: здесь в простейшем случае все рассчитывается по второму закону Ньютона F=d(mv)/dt, где F - сумма всех сил, действующих на тело (как минимум сила трения и ваша внешняя сила), v - скорость тела. F и v - векторные величины и имеют направление (знак). Сила трения скольжения рассчитывается как N*m*g*cos(A) (N- коэффициент трения скольжения, который зависит от пары соприкасающихся материалов, а А - угол между касательной к поверхности по которой двигается тело и горизонтом) Название: Re: Сила и масса Отправлено: Igors от Апрель 25, 2011, 07:26 Вы взорвали мне мозг. Более сумбурного "я спрашиваю сам незнаю что" я давно не встречал. :) В каком-то смысле это верно - если бы знал то не спрашивал бы. Я пояснил чего не понимаю. С одной стороны гравитация от массы не зависит. Однако примеры выше показывают что масса должна учитываться - это др. тип силы или как? С неподвижными предметами: С движущимися телами: С этим понятно, и трение у меня задается, и расчетами занимается движок. Но что я пользователю скажу? Чего он должен ожидать от вектора силы (1, 0. 0)? Как эффект зависит от массы? (гравитация сильно сбивает с толку, а до трения дело может и не дойти - не всегда есть контакт)Название: Re: Сила и масса Отправлено: Blackwanderer от Апрель 25, 2011, 07:35 Чего он должен ожидать от вектора силы (1, 0. 0)? Как эффект зависит от массы? Второй закон Ньютона:F=d(mv)/dt Изменение скорости прямо пропорционально силе и обратно пропорционально массе. Название: Re: Сила и масса Отправлено: Igors от Апрель 25, 2011, 07:45 Второй закон Ньютона: Это я недавно изучал и меня устраиваетF=d(mv)/dt Изменение скорости прямо пропорционально силе и обратно пропорционально массе. Цитировать F * t = m * v; Отсюда я найду v и отдам движку. Но с гравитацией-то как?Название: Re: Сила и масса Отправлено: Blackwanderer от Апрель 25, 2011, 07:50 Но с гравитацией-то как? А она зашита в F, как одно из слагаемых.Название: Re: Сила и масса Отправлено: Igors от Апрель 25, 2011, 08:04 А она зашита в F, как одно из слагаемых. Если я правильно понялЦитировать F = m * g; Тогда получаем что эффект не зависит от массы.Тогда вопрос: правильно (грамотно) ли предложить пользователю выбрать тип силы - напр popup "force style" с выбором gravity/impulse? (названия просто для примера) Спасибо Название: Re: Сила и масса Отправлено: Blackwanderer от Апрель 25, 2011, 08:40 Я бы сделал несколько чекбоксов для учета/не учета стандартных сил (сила тяжести, сила трения). Ведь они либо есть в модели, либо их нету. На их величину и направление пользователь напрямую все равно повлиять не имеет права. А вот внешнюю силу задавать как вектор, просто как силу, без уточнения природы.
Название: Re: Сила и масса Отправлено: Igors от Апрель 25, 2011, 09:14 Я бы сделал несколько чекбоксов для учета/не учета стандартных сил (сила тяжести, сила трения). Ведь они либо есть в модели, либо их нету. На их величину и направление пользователь напрямую все равно повлиять не имеет права. Так уже и сделано, т.к. гравитация и трение есть в движке.А вот внешнюю силу задавать как вектор, просто как силу, без уточнения природы. Ну возможна и custom/дополнительная гравитация, так что без природы/типа в UI не обойтись. Если масса роялит, то "просто как вектор" наверное будет не очень удобно, т.к. массы обычно большие и зависят от объемов. Я хочу предложить ему выбрать "эталонный" объект (что-то типа "калибровки"), ну то уже дело техники. Ясно, спасибо Название: Re: Сила и масса Отправлено: Blackwanderer от Апрель 25, 2011, 09:43 Ну возможна и custom/дополнительная гравитация Это как? Или у вас системы астрономических масштабов? Чтобы появлялась дополнительная гравитация, вам нужны объекты с массами сравнимыми с массами планет. Если же вам нужно рассчитать что-то для планеты отличной от Земли, воспользуйтесь более общей формулой для ускорения свободного падения: g = G*M/R^2, где G - гравитационная постоянная 6.6725е-11, M - масса планеты, R - радиус планеты.Название: Re: Сила и масса Отправлено: Igors от Апрель 25, 2011, 09:53 Это как? Или у вас системы астрономических масштабов? Чтобы появлялась дополнительная гравитация, вам нужны объекты с массами сравнимыми с массами планет. Если же вам нужно рассчитать что-то для планеты отличной от Земли, воспользуйтесь более общей формулой для ускорения свободного падения: g = G*M/R^2, где G - гравитационная постоянная 6.6725е-11, M - масса планеты, R - радиус планеты. :) Пример: пользователь хочет "выстрелить" объектом в каком-то направлении - и без разницы какая у него масса, ускорение придается одинаковое (хотя конечно масса будет учитываться при столкновениях и.т.п.). То есть здесь "гравитация" - просто тип силы, не обязательно "сила тяжести".Название: Re: Сила и масса Отправлено: Blackwanderer от Апрель 25, 2011, 10:01 Пример: пользователь хочет "выстрелить" объектом в каком-то направлении - и без разницы какая у него масса, ускорение придается одинаковое. Это неправильная физическая модель. В реальной жизни при "выстреле" на объект идет воздействие с одинаковой силой, а вот ускорение как раз будет зависеть от массы. Сравните: с какой максимальной скоростью вы сможете бросить волейбольный мячик и свинцовую гирю.Название: Re: Сила и масса Отправлено: lit-uriy от Апрель 25, 2011, 10:07 помнится мне, что при расчётах падающего тела мы пользовались силой сопротивления воздуха.
Она вычислялась по какой-то эмпирической формуле, в которой масса отсутствовала, а присутствовала площадь проекции тела на поверхность, перпендикулярную вектору скорости. Название: Re: Сила и масса Отправлено: Igors от Апрель 25, 2011, 10:17 помнится мне, что при расчётах падающего тела мы пользовались силой сопротивления воздуха. Была мысль добавить эту опцию, но, посоветовавшись с пользователями, решили не делать - оно роялит или для достаточно больших скоростей или для очень мелких объектов/частиц которые движок уже не держит. Она вычислялась по какой-то эмпирической формуле, в которой масса отсутствовала, а присутствовала площадь проекции тела на поверхность, перпендикулярную вектору скорости. Это неправильная физическая модель. В реальной жизни при "выстреле" на объект идет воздействие с одинаковой силой, а вот ускорение как раз будет зависеть от массы. Сравните: с какой максимальной скоростью вы сможете бросить волейбольный мячик и свинцовую гирю. Неправильная, но удобная для симулятора, т.к. сокращает число настроек.А вот есть др. проблема которую хотелось бы обсудить (создаю новую тему) Название: Re: Сила и масса Отправлено: Akon от Апрель 25, 2011, 10:42 Ну если выстрелить чем-то и без учета силы сопротивления воздуха, то объект будет двигаться по параболе. Чтобы объект улетел как можно дальше, нужно стрелять под уголом 45 град. Сила сопротивления воздуха зависит от скорости, примерно для малых скоростей можно считать пропорциональна скорости, для больших скоростей - пропорциональна квадрату скорости.
Название: Re: Сила и масса Отправлено: Igors от Апрель 25, 2011, 11:00 Ну если выстрелить чем-то и без учета силы сопротивления воздуха, то объект будет двигаться по параболе. Чтобы объект улетел как можно дальше, нужно стрелять под уголом 45 град. Сила сопротивления воздуха зависит от скорости, примерно для малых скоростей можно считать пропорциональна скорости, для больших скоростей - пропорциональна квадрату скорости. Насколько я помню - кубу (хотя в школе я учился давно и могу напутать). А так пользователя это не интересует - если он хочет чтобы "камера следовала за снарядом/пулей" (довольно популярная анимация), то он будет это решать др. средствами, движок физики здесь не нужен. Название: Re: Сила и масса Отправлено: m_ax от Апрель 25, 2011, 11:13 Ландау Л.Д., Лифщиц Е.М. первый том: http://www.twirpx.com/file/18039/
http://depositfiles.com/ru/files/5753640 :) Название: Re: Сила и масса Отправлено: m_ax от Апрель 25, 2011, 11:34 ...Однако вот ситуация: стоят 2 кубика одинакового размера. Один из них из картона, другой из стали (ну пользователь задал такие массы). Житейский опыт говорит что напр ветер может сдвинуть/увлечь кубик из картона но ничего не сможет поделать со стальным. Как так, это уже "другая сила" (не такая как гравитация)? Или это объясняется трением (покоя)? В общем - растерялся солдат :) Дело здесь не в трени и не в гравитации) Дело здесь в инертности. На самом деле, в уравнениях Ньютона масса - мера инертности тела. А в формуле для гравитационной силы, стоит другая масса. Однако их отношение, как оказалось постоянно с громадной точностью. Поэтому для простоты выбрали системы единиц так, чтобы отношение их было равно единицы. (Важен сам факт того что отношение их не изменяется) В том, что сдвинуть тяжёлый предмет сложнее, чем лёгкий объясняется оч просто из второго закона Ньютона: pt = F Изменение импулься пропорционально внешней силе. Если к двум разным телам (разной массы) приложить одну и ту же силу, то изменение импульсов этих тел будет одинаковым! Но поскольку импульс пропорционален "инертной" массе изменение скорости более лёгково тела будет больше, чем более тяжёлого. (Масса в процессе этого, предпологаем не меняется) // оффтоп (масса это всего лишь коэффициент, природу которого мы до сих пор не знаем. Не понятно почему у одних частиц одна маса, у других - другая. Откуда она берётся тоже не понятно пока. Возможно эксперименты на LHC преоткроют завесу этой тайны). Название: Re: Сила и масса Отправлено: Igors от Апрель 25, 2011, 11:47 Изменение импулься пропорционально внешней силе. Если к двум разным телам (разной массы) приложить одну и ту же силу, то изменение импульсов этих тел будет одинаковым! Но поскольку импульс пропорционален "инертной" массе изменение скорости более лёгково тела будет больше, чем более тяжёлого. (Масса в процессе этого, предпологаем не меняется) Уже понял (с помощью Черного Странника). Сила гравитации зависит от массы, а для др "волевой" силы такой зависимости нет. С эффектом наоборот. Да, теперь это кажется совсем простым :) |