|
|
|
Канал Игры Мечты: «Вопросы?» |
|
|
Shirson
1605 EGP
           Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002
 |
|
Вроде схода планет с орбит, падения ОС на планеты или выпинывания их на V3 в тьму таракань, головокружительные эволюции корабля и пр., и пр.
_________________ У меня бисера не доxеpа. |
|
|
YogSagot
1175 EGP
  Рейтинг канала: 1(8) Репутация: 275 Сообщения: 2796 Откуда: Daugavpils, Latvija Зарегистрирован: 17.08.2003
 |
|
Ну хорошо. Есть у меня вопрос, хотел бы получить на него более-менее развернутый ответ.
В общем так. Есть игрушка, имитирующая гравитационное взаимодействие на плоскости. Прямоугольное плоское пространство экрана, в центре окружность, вуполняющая роль "планеты" и вокруг нее по своим орбитам кружатся два "космических корабля". Корабль может выполнять следующие действия: повернутся по или против часовой стрелки, задействовать двигатели и стрелять. Снаряды, естетсвенно, тоже притягиваются "планетй", следовательно сами двигаются по своим орбитам. При вылете за пределы экрана как корабль так и снаряд вылетают с противоположной стороны. Задача проста - уничтожить вражеский корабль.
Идея не моя. Именно такая игра входит в стандартный пакет игр Mandrake Linux. Сам в нее заигрывался напару с другом. И сразу же после того, как я ее увидел, у меня возникла идея сделать ремейк под винду или флэш. В общем, под более популярные платформы. Игровая механика проблем не составляет, самолично в Паскале под ДОС написал все алгоритмы. Хотя алгоритмов там - масса на массу (и то константа) делить на квадрат расстояния ну и плюс сложение векторов. Все!
Но если с физикой все понятно и в мой первоначальный вариант вполне можно было играть двум человекам, то вот думая об ИИ для управляемого компом корабля я наткнулся о глухую стену собственного незнания математики.
Корабль, управляемый ИИ, должен определять момент, когда делать выстрел, чтобы снаряд настиг корабль противника. Вопрос этот я хотел задать уже давно. Вот вы тут заговорили о дифференциальных уравнениях и численых методах, вот я и подумал, что это должно напрямую касатся волнующего меня вопроса.
Пока, я надеюсь, мысль ясна. По ходу дискуссии буду конкретизировать вопросы и мое видение проблемы.
|
|
|
DedMazaj
68 EGP
 Репутация: 4 Сообщения: 152 Откуда: Красноярск Зарегистрирован: 25.05.2005
 |
|
Это не математика, а геометрия. Траекторию пули знаешь, траекторию корабля знаешь, так же скорости знаешь. Надо найти точку, где эти траектории будут сходится. Хотя это не просто геометрия, а аналитическая геметрия. Хотя траектория пули тоже не дана и точка встречи тоже не дана. Сейчас ничего придумать немогу, но подумаю. Но алгоритм такой: мысленно надо отбросить гравитацию, найти из треугольника траекторий-сторон (без гравитаций) пули, корабля и расстояния от твоего корабля до компа, найти две недостоющие стороны (траектория пули и траектория корабля твоего), используя при этом скорости. А потом при гравитации этот треугольник немного искозится, но сход траектории пули и твоего корабля должен, наверно, быть в одной точке.
_________________ спасаю зайцев с подбитых космических кораблей |
|
|
YogSagot
1175 EGP
  Рейтинг канала: 1(8) Репутация: 275 Сообщения: 2796 Откуда: Daugavpils, Latvija Зарегистрирован: 17.08.2003
 |
|
Во первых, там чистая математика + немного тригонометрии
Во вторых, ни траекторию пули ни траекторию корабля я, в общем-то, не знаю. Я знаю ТОЛЬКО направление вектора движения корабля в текущий момент
В третих, решительно ничего не понял из твоего "алгоритма"
В четвертых, что значит "под действием гравитации НЕМНОГО исказится"? У меня пули, полсланные по прямой, такие круги вокруг планеты наворачивают! А иногда даже на стабильные орбиты выходят, по которым кружится могут хоть до бесонечности
Так что, с глубоким прискорбием и к большому сожалению смею ризнать, что ответ не канает
|
|
|
unkAlien
421 EGP
   Репутация: 36 Сообщения: 860 Откуда: Челябинск Зарегистрирован: 05.06.2004
 |
|
Цитата: |
А потом при гравитации этот треугольник немного искозится
|
Цитата: |
Во вторых, ни траекторию пули ни траекторию корабля я, в общем-то, не знаю.
|
Очевидно, траектория будет эллипсом/параболой/гиперболой. Поищи в гугле что-нить вроде "элементы орбиты". Должны найтись формулы на все случаи жизни
Цитата: |
А иногда даже на стабильные орбиты выходят
|
А они что, могут быть нестабильными?
|
|
|
YogSagot
1175 EGP
  Рейтинг канала: 1(8) Репутация: 275 Сообщения: 2796 Откуда: Daugavpils, Latvija Зарегистрирован: 17.08.2003
 |
|
unkAlien : |
Очевидно, траектория будет эллипсом/параболой/гиперболой.
|
Очевидно. А сам поконкретнее ничего сказать не можешь?
unkAlien : |
А они что, могут быть нестабильными?
|
Они могут на планету упасть! Что, чаще всего, и случается
|
|
|
Shirson
1605 EGP
           Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002
 |
|
Нестабильная орбита, это скорее та, которая меняет свои параметры со временем. Этого по определению не может случиться в твоей модели - у тебя только одна масса влияния (корабли не в счёт, мелковаты).
_________________ У меня бисера не доxеpа. |
|
|
Udav
591 EGP
     Репутация: 105 Сообщения: 3365 Откуда: SPb Зарегистрирован: 26.04.2001
 |
|
YogSagot : |
Во вторых, ни траекторию пули ни траекторию корабля я, в общем-то, не знаю. Я знаю ТОЛЬКО направление вектора движения корабля в текущий момент
|
с добрым утром. А положение корабля в пространстве не? А оно же в момент т-1 не? Пуля имеет что ль хаотические движки или через щебень бросается?
YogSagot : |
В четвертых, что значит "под действием гравитации НЕМНОГО исказится"? У меня пули, полсланные по прямой, такие круги вокруг планеты наворачивают!
|
Это значит, что изгиб траектории на дистанции стрельбы незначителен.
YogSagot : |
А иногда даже на стабильные орбиты выходят, по которым кружится могут хоть до бесонечности
|
цель задачи - стрельба по кораблю вроде, или просто вывод малого тела на орбиту?
_________________ Чудес не бывает. |
|
|
DedMazaj
68 EGP
 Репутация: 4 Сообщения: 152 Откуда: Красноярск Зарегистрирован: 25.05.2005
 |
|
зачем расчитывать траекторию дуг? Уберите мыслено гравитацию и расчитывайте траекторию прямых, а потом, при гравитации эти прямые превратятся в дуги, но пуля всё равно должна достигнуть цели. Только вот я не очень уверен, будет ли это всё правдой, если убрать гравитацию, сделать расчет, и поставить гравитацию назад.
_________________ спасаю зайцев с подбитых космических кораблей |
|
|
Shirson
1605 EGP
           Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002
 |
|
И как это будет выглядеть? Всмысле расчётного блока.
_________________ У меня бисера не доxеpа. |
|
|
DedMazaj
68 EGP
 Репутация: 4 Сообщения: 152 Откуда: Красноярск Зарегистрирован: 25.05.2005
 |
|
Я уже рассказывал, что берется треугольник, стороны которого являются траектония КК, траектория пули от компа до места встречи с КК, и расстояние от КК до компа. При помощи скоростей пули и КК, можно вычислить две стороны треугольника - траектории КК и пули до их столкновения. Как вычислить? я ешё не задумывался (сдаю сессию, учу экзамены, нет времени, завтра сдам последний экзамен и буду думать над вашими темами), но вычислить можно.
_________________ спасаю зайцев с подбитых космических кораблей |
|
|
Udav
591 EGP
     Репутация: 105 Сообщения: 3365 Откуда: SPb Зарегистрирован: 26.04.2001
 |
|
DedMazaj : |
зачем расчитывать траекторию дуг? Уберите мыслено гравитацию и расчитывайте траекторию прямых, а потом, при гравитации эти прямые превратятся в дуги, но пуля всё равно должна достигнуть цели.
|
Tо есть воздействие гравитации на тела это просто прибавленная константа? мощно.
_________________ Чудес не бывает. |
|
|
DedMazaj
68 EGP
 Репутация: 4 Сообщения: 152 Откуда: Красноярск Зарегистрирован: 25.05.2005
 |
|
Udav : |
Tо есть воздействие гравитации на тела это просто прибавленная константа? мощно.
|
ну я же говорю, что это неточно и требуется в проверке
_________________ спасаю зайцев с подбитых космических кораблей |
|
|
YogSagot
1175 EGP
  Рейтинг канала: 1(8) Репутация: 275 Сообщения: 2796 Откуда: Daugavpils, Latvija Зарегистрирован: 17.08.2003
 |
|
DedMazaj : |
ну я же говорю, что это неточно и требуется в проверке
|
Вот пока ты проверяешь, я у знающих немного поинтересуюсь. Так с какого боку мне все таки прододить к решению задачи?
|
|
|
DedMazaj
68 EGP
 Репутация: 4 Сообщения: 152 Откуда: Красноярск Зарегистрирован: 25.05.2005
 |
|
А давайте создадим функцию жизни от времени! По которой можно будет посчитать всё!
_________________ спасаю зайцев с подбитых космических кораблей |
|
|
Udav
591 EGP
     Репутация: 105 Сообщения: 3365 Откуда: SPb Зарегистрирован: 26.04.2001
 |
|
YogSagot : |
Так с какого боку мне все таки прододить к решению задачи?
|
На мой взгляд задача близка к смене орбиты. Имея характеристики ствола а именно направление выстрела и скорость снаряда получаем орбиту снаряда. Она пересекает орбиту мишени или не пересекает. Во втором случае смысла стрелять нет. В первом случае можно вычислить время полета до пересечения с целевой орбитой. Из чего можно вычислить момент выстрела чтобы в данной точке оказалась цель. Как проще вычислить орбыту лучше спросить Ширсона.
_________________ Чудес не бывает. |
|
|
|
|
|
Канал Игры Мечты: «Вопросы?» |
|