Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Физикам : имитация баллистики (http://www.flasher.ru/forum/showthread.php?t=36320)

BMF 27.08.2002 12:06

Физикам : имитация баллистики
 
Кто нибудь пытался симитировать во флэше,например, полёт пушечного ядра?Программно,разумеется...Я тут попытался но покамест не очень выходит.
Начальную скорость по оси Х и У задать не сложно, но снаряд то летит не по прямой а по особой кривой, на кривизну которой влияют как минимум две величины: сила тяготения и начальный импульс.И это не считая сопротивления воздуха, который мы в расчёт брать не будем.С тяготением проблем нет, эта величина постоянная,а вот импульс угасает, причём неравномерно.В этом то вся фишка траектории, когда в какой-то момент снаряд падает вертикально вниз.Вот как это сделать?
Может формула какая есть на этот счёт?Кто в физике силён?Подсобите, пожалуйста!

Gmot 27.08.2002 12:25

Вот формулки
 
x=V*t*cos(a);
y=V*t*sin(a)-1/2*g*t*t,
где V-начальная скорость, t-время, а - угол к горизонту.

BMF 27.08.2002 12:43

Спасибо большое!
Всё вышло:)

pool 09.09.2002 07:13

Дружище!
Формула конечно хорошо! Но ты можеш во флэш учесть вообще все что захочеш и то чего нет....
в каждом кадре у тебя пропишутся силы или там вектора...
а снаряд запустиш в первом...а кадрики все тебе сделают дискретно шаг за шагом....
конешно пропишеш не каждом кадре, а в одном, где экшин...но ты понял...

Useless 09.09.2002 13:37

Можно позанудствовать?
 
Если сопротивление воздуха не учитывать, то снаряд будет лететь по идеальной параболе, и вертикально вниз падать ну никак не будет...

DeliMIter 09.09.2002 19:51

Ну, допустим, не будет. А что ты этим хотел сказать?

Nox Noctis 09.09.2002 20:04

надо бы упасть на колени, удариться головой об пол и воскликнуть "О, великий Сопромат !"... потом жертву человеческую принести, чтобы его задобрить или еще что...

pool 10.09.2002 07:59

Ну добавь же силу обратнопропорциональную скорости снаряда, какая именно пропорция не помню,...и в каком-то кадре скорость обнулится, вот он и хлопнется вертикально. тут я уже писал, можно про аналитику забыть и заняться численным экспериментом и будет как в природе, т.е. в каждый момент, читай в каждый кадр, решается новая задачка...а формула которую тебе написали это уже результат...

Useless 10.09.2002 13:40

Цитата:

Ну, допустим, не будет. А что ты этим хотел сказать?
Ну там же всё написано - я хотел позанудствовать (в адрес BMF'а), и мне это блестяще удалось :D

syo 10.09.2002 13:45

http://users.g.com.ua/~set/berta.swf
Здеся находится игрушка с реализованой физикой.
Для примера могу выслать исходник, коль нужно.

Useless 10.09.2002 14:02

В качестве компенсации за своё столь неблаговидное поведение привожу реализацию идеи pool'а.

В первом кадре задаём начальные координаты, скорость, коэффициент сопротивления воздуха и ускорение свободного падения. Совершенно необязательно их брать из справочника по физике, нужно просто экспериментальным путём подобрать подходящие значения.
Код:

x=0; y=0;
vx=10; vy=20;
g=2; f=0.1;
ball._x=x; ball._y=y;

Во втором кадре вычисляем новые значения скорости и координат.
Код:

x+=vx; y+=vy;
vx-=vx*f; vy=(vy-g)-vy*f;
ball._x=x; ball._y=y;

Ну и в третьем кадре проверяем, приземлились ли мы, и, если ещё летим, то снова на второй кадр.
Код:

if(y>0){
  gotoAndPlay(2);
}else{
  stop();
}


BMF 10.09.2002 18:40

Спасибо всем за помощь и за ехидство некоторых:)Я уже сам всё сделал.Пушку отрендерил в свифте, и снаряд у меня уже летает от зрителя в перспективе, в трёх измерениях.Осталось только кораблики пустить и будет настоящий морской бой:)
Ежели что стоящее выйдет, обязательно выложу

Useless 10.09.2002 20:53

В трёх измерениях? В перспективе??

Уважаю :)

BMF 22.09.2002 17:20

На самом деле всё просто:
Формула перспективы взята с сайта http://bit-101.com( правда она как-то криво работала,пришлось её переделывать ), формулу полёта ядра мне вот тут добрые люди подсказали, осталось только соединить эти две формулы и получается очень реалистичное движение снаряда по баллистичексой траектории в перспективе.
Всё просто:)


Часовой пояс GMT +4, время: 10:38.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.