Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];

Вниз

Подскажите плз алгоритм полёта пули на OpenGl!!!   Найти похожие ветки 

 
min   (2004-05-04 18:15) [0]

В теме всё сказано.


 
ворошиловский стрелок   (2004-05-04 21:49) [1]

по прямой.. лучше по параболе.


 
Рамиль ©   (2004-05-04 22:16) [2]

А что, на OpenGL пуля как то по другому летит?!.:) Как же ее тогда на DirectDraw кособочит...


 
MrAngel   (2004-05-05 01:23) [3]

Дело в том что в идеале пуля вовсе не летит по прямой. Вспомните снайперов. Те делают поправку на ветер, плотность воздуха, дальность, высота позиции стрелка.


 
Goorus   (2004-05-05 03:25) [4]

Угу, а ещё надо учитывать тействие гравитационных сил всех планет во вселенной, Боровское движение, зависимость плотности воздуха от высоты, солнечную радиацию и уровень алкоголя в крови стрелка :)


 
MeF88 ©   (2004-05-05 11:34) [5]

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


 
MrAngel   (2004-05-06 01:22) [6]

Goorus - именно :-)))


 
matsic ©   (2004-05-11 19:05) [7]

Посмотри на этот фрагмент

#ifndef TFly3D_cpp
#define TFly3D_cpp

#include "vector3D.cpp"

const TVector3D g={0,-9.8,0};
const double K=0.0002;
const double QUALITY=0.0001;
struct TFly3D
{
TVector3D koord, v;
double mass;
void move(double);
};

void TFly3D::move(double dt)
{
double dt_opt,dt_sum,a_var_min,v_abs;
TVector3D a, a_const, a_var;
dt_sum=0;
a_const=(TVector3D)g;
m:
v_abs=abs(v);
a_var=-v*v_abs*K;
a_var_min=QUALITY/dt*v_abs;
if(a_var_min<abs(a_var)) dt_opt=QUALITY/K/v_abs/mass;
 else dt_opt=dt-dt_sum;
a=a_const+a_var;
koord+=v*dt_opt+a*dt_opt*dt_opt/2.0;
v+=a*dt_opt;
dt_sum+=dt_opt;
if(dt_sum<dt) goto m;
}

#endif


Полный исходник, конечно, намного побольше. Все таки, имеем дело с 3D-векторами.
Здесь хоть и не учитывается  сам ветер, но есть сила сопротивления воздуха. Силу ветра можно добавить к в расчет, если в строке
a_var=-v*v_abs*K;
Вектор скорости v заменить на скорость относительно воздуха v1=v-v_air,
где v_air - скорость ветра.
Не забудь пересчитать и v_abs соответственно.

Коэффициент сопротивления воздуха K.
QUALITY отвечает за точность расчета. Чем меньше - тем точнее, но больше жрет ресурсов. Можно брать от 0,01 до 0,1.



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.056 c
14-1092367704
Новенький
2004-08-13 07:28
2004.08.29
Ищу компонент


1-1092656987
Diman
2004-08-16 15:49
2004.08.29
RichEdit


3-1091520232
}|{yk
2004-08-03 12:03
2004.08.29
Sequences


14-1092138667
Sergey13
2004-08-10 15:51
2004.08.29
Книга Туркменбаши - смешно, ели б не так грустно


14-1092103092
Думкин
2004-08-10 05:58
2004.08.29
С днем рождения! 10 августа





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский