всем привет!
мой вопрос несовсем относится к разработки игр, (мне его задали по предмету компьютерного моделирования)
но найти более подходящего ресурса чем этот я несмог.
вообщем задача заключается в том что бы построить физический процесс прыгающего на платформе мячика.
к счатью только в 2D пространстве. :)
платформа кстати тоже подпрыгивает.
нужно построить алгоритм который будит подсчитывать то как будит изменятся амплетуда движения мячика.
сначала все кажется довольно просто - у меня есть точка М (x,y) она же мячик и платформа A[x1,y1] B[x1,y2]. есть скорость S которая будит изменяться. Но как расчитать Угол отражения от платформы? и есть ведь также сила притяжения которая будит заставлять двигаться мячик в низ и также изменять угол его движения. а ведь я даже незнаю как обозначить угол на языке программир., точнее как сказать компилятору что эта переменная обозначет угол движения обьекта. т.к. раньше некогда несталкивался с такими заданиями которые както затрагивают физику.
конечно я понимаю врятли знающему человеку захочется просто так взять и решить на задание, но подскажите хотябы что можно почитать на эту тему что бы разобраться.
почитать книжку по программированию на языке программирования :)
гы, компилер не знает что эта переменная угол падения или кол-во выпитых стаканов, для компютера это только числа :))
также почитать физегу про 2-й закон Ньютона и выш.мат про интегрирование по Эйлеру
угол отскока в случае абс.упругого соударения/отсутствия трения = углу падения
дерзай!
P.S. задание за тебя делать не буду, могу дать исходники своего Bouncing Balls screensaver, если хочешь разбирайся
спасибо Aslan!
думаю исходники могли бы помочь)
Короч, без исходников. Угол в радианах или в градусах? Рекомендую для угла int или double. Ну что не ясно - по-моему угол соприкосновения равел угл отталкивания. Наскоко я помню физику, хотя и давно єто было. Ну вообще-то возьми нарисуй мяч и все вектора сил, которые на него воздействуют в разные моменты времени. И ты сам все поймеш. А еще есть готовые физ. движки. Удачи!
e1
Для начала тебе стоит вернуться обратно в школу.
e1
исходники C++,OpenGL
http://www.gamedev.ru/download/?id=8681
(можешь и не смотреть)
конкретно по твоему заданию:
мячик движется с ускорением a=(0,-g), раскладываешь движение на некоторые временные интервалы dt, если в в момент t скорость v(t),положение x(t) (2D вектора), то в момент t+dt скорость v(t+dt)=v(t)+a*dt, положение x(t+dt)=x(t)+v(t)*dt (это простейшее интегрирование по Эйлеру, есть более сложный и точный метод Рунге-Кутта и др). если у тебя Windows-приложение, можешь обсчет повесить на таймер, в начала считаешь dt, как разницу в GetTickCount() / 1000. далее, надо определять столкновение с платформой ( в пределах промежутка dt), считай, что центр шарика движется по прямой и определяй пересечение отрезка
(x(t),x(t+dt)) с прямой, отстоящей от платформы на r шарика. здесь, однако надо учесть скорость и смещение за dt самой платформы, проще всего сменить систему отсчета, т.е. платформу считаем неподвижной, а к скорость шарика считаем v(t)-vp(t) (vp(t)-скорость платформы в момент t). Угол удара шарика (относительно платформы) известен из скорости (относительно платформы), угол отражения=углу удара (в простом случае), получаешь угол и новый вектор скорости (повернутый), прибавляешь v(p), x(t+dt) находишь как сумму смещений до и после удара. все
не совсем подробно, но ты должен сам разобраться
peinguin
за "готовые физ. движки" ему точно 2 влепят
Blew_zc
вошел на форум, чтобы кому-нить нахамить?
Aslan
Это не хамство. Это констатация фактов. Школа - такое гадкое место, что предложение туда вернуться является оскорблением? ;)
Это хамство, ты человека сравниваешь с полным неучем или дураком, чего-то не знаешь-спрашиваешь, это нормально, или ты сам знаешь все? Школа тут вовсе ни причем, в школе таким вещам не учат. Или ты так шутишь?
Aslan
>Ты шутишь или заняться нечем?
Скорее первое, но в каждой шутки есть доля правды.
>..с полным неучем..
Не знаю. К нам в универ с таким знанием русского языка обычно не поступают...
Очень противно читать такое. Понятно, что сейчас кто-то может сказать: "Ну так не читай! Уйди отсюда!". Но мне, как говорится, "за державу обидно".
Ладно.
Приношу свои извинения топикстартеру и заканчиваю трепаться.
>> в школе таким вещам не учат
Насколько я помню, учат. Только надо слушать и проектировать всю инфу на свои темы.
Тема в архиве.