![]() |
Физикам : имитация баллистики
Кто нибудь пытался симитировать во флэше,например, полёт пушечного ядра?Программно,разумеется...Я тут попытался но покамест не очень выходит.
Начальную скорость по оси Х и У задать не сложно, но снаряд то летит не по прямой а по особой кривой, на кривизну которой влияют как минимум две величины: сила тяготения и начальный импульс.И это не считая сопротивления воздуха, который мы в расчёт брать не будем.С тяготением проблем нет, эта величина постоянная,а вот импульс угасает, причём неравномерно.В этом то вся фишка траектории, когда в какой-то момент снаряд падает вертикально вниз.Вот как это сделать? Может формула какая есть на этот счёт?Кто в физике силён?Подсобите, пожалуйста! |
Вот формулки
x=V*t*cos(a);
y=V*t*sin(a)-1/2*g*t*t, где V-начальная скорость, t-время, а - угол к горизонту. |
Спасибо большое!
Всё вышло:) |
Дружище!
Формула конечно хорошо! Но ты можеш во флэш учесть вообще все что захочеш и то чего нет.... в каждом кадре у тебя пропишутся силы или там вектора... а снаряд запустиш в первом...а кадрики все тебе сделают дискретно шаг за шагом.... конешно пропишеш не каждом кадре, а в одном, где экшин...но ты понял... |
Можно позанудствовать?
Если сопротивление воздуха не учитывать, то снаряд будет лететь по идеальной параболе, и вертикально вниз падать ну никак не будет...
|
Ну, допустим, не будет. А что ты этим хотел сказать?
|
надо бы упасть на колени, удариться головой об пол и воскликнуть "О, великий Сопромат !"... потом жертву человеческую принести, чтобы его задобрить или еще что...
|
Ну добавь же силу обратнопропорциональную скорости снаряда, какая именно пропорция не помню,...и в каком-то кадре скорость обнулится, вот он и хлопнется вертикально. тут я уже писал, можно про аналитику забыть и заняться численным экспериментом и будет как в природе, т.е. в каждый момент, читай в каждый кадр, решается новая задачка...а формула которую тебе написали это уже результат...
|
Цитата:
|
http://users.g.com.ua/~set/berta.swf
Здеся находится игрушка с реализованой физикой. Для примера могу выслать исходник, коль нужно. |
В качестве компенсации за своё столь неблаговидное поведение привожу реализацию идеи pool'а.
В первом кадре задаём начальные координаты, скорость, коэффициент сопротивления воздуха и ускорение свободного падения. Совершенно необязательно их брать из справочника по физике, нужно просто экспериментальным путём подобрать подходящие значения. Код:
x=0; y=0;Код:
x+=vx; y+=vy;Код:
if(y>0){ |
Спасибо всем за помощь и за ехидство некоторых:)Я уже сам всё сделал.Пушку отрендерил в свифте, и снаряд у меня уже летает от зрителя в перспективе, в трёх измерениях.Осталось только кораблики пустить и будет настоящий морской бой:)
Ежели что стоящее выйдет, обязательно выложу |
В трёх измерениях? В перспективе??
Уважаю :) |
На самом деле всё просто:
Формула перспективы взята с сайта http://bit-101.com( правда она как-то криво работала,пришлось её переделывать ), формулу полёта ядра мне вот тут добрые люди подсказали, осталось только соединить эти две формулы и получается очень реалистичное движение снаряда по баллистичексой траектории в перспективе. Всё просто:) |
| Часовой пояс GMT +4, время: 10:38. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.