ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Наведение Фау по координатам? | страница 1 |
 |
Страница 1 из 1 |
|
|
|
Канал Orbiter: «Наведение Фау по координатам?» |
|
|
igel
100 EGP
 Рейтинг канала: 4(86) Репутация: 14 Сообщения: 755
Зарегистрирован: 12.06.2006
 |
|
Вопрос возник к управленцам: существует ли не-итерационный аналитический алгоритм наведения простого одноступенчатого изделия (я сейчас с автопилотом Фау играюсь) по координатам старта и падения? Вот ведь учил все это когда-то...почти все забыл
|
|
|
Bloodest
156 EGP
  Рейтинг канала: 3(40) Репутация: 18 Сообщения: 944 Откуда: Питерские мы Зарегистрирован: 07.10.2004
 |
|
Ну без итераций не обойтись. Вопрос где и как их делать.
Дык проще паренной репы - Стартуем, выдерживаем вертикаль, заваливаемся на угол тангажа дальше летим под этим углом. Остается определить только время отсечки двигателя.
Реализуем этот простенький алгоритм. Главное чтобы он хорошо воспроизводился- контролируем угол атаки на момент завершения завала. Чем меньше разброс - тем выше будет точность.
Сперва методом перебора угла завала достигаем максимальной дальности полета. Дальше методом перебора составляем таблицу - момент отсечки - дальность полета.
Вот и все ни какой математики - голая эмпирика...
Собственно так она и летала...
|
|
|
igel
100 EGP
 Рейтинг канала: 4(86) Репутация: 14 Сообщения: 755
Зарегистрирован: 12.06.2006
 |
|
Спасибо! Это, в общем, да, понятно. Но как насчет азимута? Он-то вычислялся заранее, до старта, и не корректировался. А насколько я понимаю, эффект от вращения Земли (который надо учитывать при наведении по азимуту) будет зависеть от времени полета (чем больше дальность, тем больше успеет проползти цель вместе с Землей). А время полета, получается, можно прикинуть лишь приблизительно, для идеальной траектории... Так? Или я что-то путаю?
p.s. Азимут мне тоже нужно посчитать заранее, в редакторе сценариев, то есть, до реального полета. Как оно, впрочем, и на самом деле было. И пока что именно с вращением Земли самые проблемы...
|
|
|
Bloodest
156 EGP
  Рейтинг канала: 3(40) Репутация: 18 Сообщения: 944 Откуда: Питерские мы Зарегистрирован: 07.10.2004
 |
|
Дык сперва реализуй автомат управления двигателями.
Затем стартуй точно на север и посмотри какой будет снос.
Впринципе его тоже можно затабулировать.
Дело в том что вращение Земли достаточно сложная штука во влиянии на траекторию - атмосфера тоже вращается - верхние слои имеют большуюю скорость - и они "сдувают" ракету с курса (обычно это идет на высотах от 10 до 30 км)- возникает ошибка всреднем в полградуса.
Ну дык азимут дело устроения антуража - как оформишь кокпит - можно никак - скажем жмешь ctrl T(arget) - появляется окно для ввода параметров цели (до кучи, через разделители)- хотя выгоднее сделать нечто полигона - цели объекты - косм корабли пустышки с мешами в виде зданий - вводится просто номер цели. Затем ctrl L(aunch) - пуск. Обратная информация через отладочную строку.
Сперва можно просто делать разворот ракеты на азимут по ctrl T - читаем статус ракеты - меняем азимут - записываем статус.
Алгоритмы работы с сферическими координатами (не мои - из одного из аддонов MFD - вроде от LunarLanding)
Код: |
#define RADIUS_PLANET 6371e3
double CalcSphericalDistance(VECTOR3 Pos1, VECTOR3 Pos2)
{
double DeltaLat = Pos2.y - Pos1.y;
double DeltaLong = Pos2.x - Pos1.x;
double A = pow(sin(DeltaLat/2.), 2.) + cos(Pos1.y) * cos (Pos2.y) * pow(sin(DeltaLong/2.), 2.);
double C = 2. * atan2(sqrt(A), sqrt(1. - A));
return (RADIUS_PLANET * C);
}
double CalcSphericalBearing(VECTOR3 Pos1, VECTOR3 Pos2)
{
#define LAT1 Pos1.y
#define LAT2 Pos2.y
#define LONG1 Pos1.x
#define LONG2 Pos2.x
// Since we can't do mod with doubles...
double Result = atan2(sin(LONG1 - LONG2) * cos(LAT2),
cos(LAT1) * sin(LAT2) - sin(LAT1) * cos(LAT2) * cos(LONG1 - LONG2));
if (Result > (2*PI)) {
Result -= 2*PI;
}
return Result;
#undef LAT1
#undef LAT2
#undef LONG1
#undef LONG2
}
void CalcOffsetLatLong(VECTOR3 Pos, VECTOR3& Result, double Distance, double Angle)
{
#define LAT x
#define LONG y
double sinDeltaLong, cosDeltaLong, DeltaLong;
Result.LAT = asin(sin(Pos.LAT) * cos(Distance) + cos(Pos.LAT) * sin(Distance) * cos(Angle));
sinDeltaLong = (sin(Angle) * sin(Distance)) / cos(Result.LAT);
cosDeltaLong = (cos(Distance) - sin(Pos.LAT) * sin(Result.LAT)) /
(cos(Pos.LAT) * cos(Result.LAT));
DeltaLong = atan2(sinDeltaLong, cosDeltaLong);
Result.LONG = Pos.LONG - DeltaLong + PI;
// Mod
if (Result.LONG > (2*PI)) {
Result.LONG -= 2*PI;
}
Result.LONG -=PI;
#undef LAT x
#undef LONG y
}
#undef RADIUS_PLANET
|
CalcSphericalDistance - расстояние от 1 до 2. вектора - то что выдает GetEqPos из SDK орбитера
CalcSphericalBearing - азимут
CalcOffsetLatLong - обратная к двум предыдущим...
|
|
|
igel
100 EGP
 Рейтинг канала: 4(86) Репутация: 14 Сообщения: 755
Зарегистрирован: 12.06.2006
 |
|
Спасибо!
Затабулировать азимутальные поравки - мысль интересная, мне в голову не приходила А ведь немцы неспроста таблицами стрельбы пользовались. Ну, правда, у нас мощностей вычислительных поболе, можно и самим считать . Другое дело, что слишком глубоко в дебри лезть тоже лениво бывает.
Поправки по дальности (на аэродинамику, в основном) я так и закладываю, эмпирические, от тестовых отстрелов. С азимутом вариаций больше (по широтам), но... посмотрим. Думаю, еще функции местного дополнительно горизонта гадят: Я их использую, а не инерциальные (которых в API и нет вовсе).
Сферические формулы - да, совершенно те же самые, что я использую. А кокпит мне пока вообще не нужен. Мой редактор сценариев - не часть Орбитера, а отдельная программа, мостик между Орбитером и Google Earth. Примерно так: в GE ставишь ракеты (штук 10, просто как точки), указываешь цели (тоже как точки), сохраняешь в klm, потом в редакторе импортируешь klm, назначаешь цели ракетам, сохраняешь scn. Так что задача Орбитера довольно ограниченная - просто отстрел сценария, и никакой особой интерактивности там не предусмотрено. Тот же редактор затем служит для анализа результатов отстрела и экспорта в GE (чтобы посмотреть, что куда на самом деле попало ).
|
|
|
Bloodest
156 EGP
  Рейтинг канала: 3(40) Репутация: 18 Сообщения: 944 Откуда: Питерские мы Зарегистрирован: 07.10.2004
 |
|
Google Earth - интересная штуковина, но как я понял она данные на диск (долговременно) не кеширует - мопедчикам будет туговато...
|
|
|
igel
100 EGP
 Рейтинг канала: 4(86) Репутация: 14 Сообщения: 755
Зарегистрирован: 12.06.2006
 |
|
Ну, тут-то как раз (по пунктам) все просто:
- на модемы и Орбитер не рассчитан с его размерами релизов и патчей;
- 95% целевой аудитории (включая меня) живут там, где даже про самые быстрые модемы забыли уже давно;
- остальные 5% аудитории движутся в том же направлении;
- GE имеет локальный кэш, что возможно делает ее в принципе работоспособной на модеме, хотя мне уже и не представить, как это будет выглядеть (разве вот когда летом в Россию заеду...)
- klm-файлы - это простой xml, потенциально совместимый с абсолютно любой картографической системой, поддерживающей waypoints. Которая может быть и локальной. Да и в интернете - вроде бы тот же Google Maps (куда более гуманный к ресурсам) то ли уже начал их напрямую поддерживать, то ли вот-вот начнет.
Так что особых проблем с GE я не вижу. Главная проблема - время: сейчас у меня на работу с Орбитером бывает максимум пара часов в неделю (в хорошую неделю). Таким темпом много не наваяешь, поэтому в прототипах все болеее-менее работает, но пока до чего-го представительского дело дойдет - глядишь, и модемы везде повымрут
|
|
|
IgoryanSS
760 EGP
  Рейтинг канала: 1(6) Репутация: 166 Сообщения: 1308
Зарегистрирован: 28.10.2005
 |
|
igel : |
- на модемы и Орбитер не рассчитан с его размерами релизов и патчей;
|
Тут я с вами не соглашусь. Размеры Orbiter постоянно уменьшаются и мне, пользователю модема(dual-up),не составляет особого труда его скачать(даже учитывае его обновления). Да, конечно, это каждый раз занимает по несколько часов, но зато я получаю игру. Отсюда вывод: главное не быстрый интернет, а желание
igel : |
- 95% целевой аудитории (включая меня) живут там, где даже про самые быстрые модемы забыли уже давно;
|
И чтоже это по вашему мнению за целевая аудитория, и какие районы её проживания?
_________________ Чтобы слова не расходились с делом, нужно молчать и ничего не делать |
|
|
igel
100 EGP
 Рейтинг канала: 4(86) Репутация: 14 Сообщения: 755
Зарегистрирован: 12.06.2006
 |
|
По моим наблюдениям на форумах, Орбитер - это почти чисто европейское развлечение. Америка, пожалуй, на втором месте (оба побережья, что неудивительно - крупные промышленные центры). Канада (где я сижу) тоже есть немножко, и тоже крупные города. Россия постепенно прирастает - но пока, по моему, тоже в основном Москвой и Питером. Соответственно, и целевая аудитория распределяется приерно так же: в главном фокусе - Европа. С ней, кстати, и осторожничать приходится больше всего: крутой народ, основная движушая сила... но - поголовные пацифисты, а проект изрядно милитаристский Но зато и сильно исторический, с хорошим образовательным потенциалом, а это для них уже счиается большим плюсом Ну и, наконец, я заметил, что в сообществе Google Earth европейцы активны чуть ли не больше американцев (из чего я заключаю, что проблем с модемами у них нет, а интерес, напритив, наличествует). Так интересное попадание может быть
|
|
|
Bloodest
156 EGP
  Рейтинг канала: 3(40) Репутация: 18 Сообщения: 944 Откуда: Питерские мы Зарегистрирован: 07.10.2004
 |
|
A... Теперь целенаправленность понятна... Одобрям...
ЗЫ Но тем не менее лудше штоб пару сценариев были готовыми - для безлошадных.
ЗЫ ЗЫ А в Росии с адсл еще долго и далеко - и в Питере и Москве тож...
Гыг главное не в охвате а в ширине каналов провайдера - стоимости трафика - а он очень дорогой - по западным меркам просто заоблачные цены. Именно по этому что гугль не кешируется (в отличие от насовского ворлд винд)- стоимость работы с таким тулзом будет очень высока. Тут шкурный интерес работает - скачал - твое - юзай как хош - а в гугле не так - это не твое и когда выключишь - все потеряешь ( в смысле изображений поверхности).
И вообще у гугля, я смотрю, трясун на счет их драгоценных изображений ...
|
|
|
Thorton
87 EGP
 Рейтинг канала: 3(36) Репутация: 12 Сообщения: 696 Откуда: Томск Зарегистрирован: 15.05.2006
 |
|
Цитата: |
главное не в охвате а в ширине каналов провайдера - стоимости трафика
|
Стоимость траффика все же важнее ширины канала, например у меня ADSL со скоростью 7 Мбит/с, а толку от этой скорости почти ноль, если учесть помегабайтную тарификацию. Крупные файлы все равно дешевле во много раз выкачать по мопеду.
А попользовавшись GE продется наверное потом почку или глаз продать для оплаты счета за Интернет
Давайте уже заканчивать с обсуждением того, у кого какой интернет
IgoryanSS
|
|
|
igel
100 EGP
 Рейтинг канала: 4(86) Репутация: 14 Сообщения: 755
Зарегистрирован: 12.06.2006
 |
|
Да, обсуждение деталей GE несколько не по теме, но все-таки, чтобы не бросать его на "неточной" фазе, поясню, по возможности кратко. GE - кэширует. Размер кэша определяется в опциах программы. Эффект кэша заметен на глаз даже при быстром соединении (понятно же, что человек чаще всего будет "лазать" по своим любимым местам шарика ). Гугль вовсе не дрожит за свои фото (вот, даже обидно чуть стало за свой любимый сервис! ) Только дурак может надеяться хоть как-то ограничить то, что уже скачалось на комп пользователя - а в Гугле отнюсь не дураки сидят... ну и не пытаются . Хохмы ради набрал (прямо в гугле ) поиск "google earth cache location" - и пожалуйста, куча информации про то, где именно на жестком диске сидят файлы кэша. Там, понятно, не jpg-файлы, а база данных, которую еще ковырять надо, но я дальше и искать не стал - ясно, что это уже давным-давно расковыряли, только и нужно что поискать в том же гугле да скачать нужный унстрУмент... Ой, а вот это уже не такой уж и офф-топик получается: подобный тул может быть лучше, чем скриншоты - а о чем-то таком был разговор в теме про Байконур!
Ну а теперь обратно к моей теме. Готовых сценариев будет - туева хуча! Я сейчас перелопачиваю горы исторического материала, просто глаза разбегаются! Пеенемюнде, Близна, КапЯр, Уайт Сэндз, операция Backfire... Бовое применение - Лондон, Антверпен, Париж - а по неподтвержденным данным, даже Питер! А случайные залеты в Швецию и Мексику?! А всякие "веселые" сценарии? Например, куда может долететь Фау, стоящая в Смитсониевском музее, если ее втихаря заправить и пустить? А если не сумеет полететь как следует, то где грохнется? А другие "музейные" ракеты?
Что и говорить, насыщенная у Фау была история, так что сценарии будут. Собственно, визуальный редактор сценариев нужен в первую очередь мне самому - материала так много, что просто возиться с текстовыми конфиг-файлами нереально, утонешь. Так что, наваяв сценарии, отдавать редактор в общем и не обязательно, и Гугль вроде бы и не нужен. Но... главный прицел у всего проекта - "играбельность". А у нее главный принцип - "пользователь все-таки должен получать больше удовольствия от игры, чем разработчик - от ее разработки" . И я заметил две хороших "плюхи" с редактором. Во-первых, "мелкое хулиганство" в виде возможности поставить батарею Фау прямо в своем дворе и шарахнуть по соседним городам придает такую пикантность и остроту, что ей-богу жалко ее херить. Во-вторых, "зеленые и плоские" равнины Орбитера все-таки недостаточно визуально интересны, недостаточно контрастны в качестве целей. Поэтому для тестовых отстрелов я просто ставлю батарею на Багамах и бью по району Канаверала - просто потому, что он детальнее всего проработан. Стрельба же в исторически правильной, но плоской и размытой Европе эмоционально проигрывает "обстрелу Канаверала"... но только до того момента, как загрузишь результаты в GE! Если район покрыт hi-res-кадрами (а они там большей частью покрыты) - то fun coefficient немедленно возвращается туда, где ему и положено быть! Так что, боюсь, что без GE можно будет обойтись, а вот без потерь при этом - вряд ли...
|
|
|
|
|
|
Канал Orbiter: «Наведение Фау по координатам?» |
|
|