Лаборатория космических исследований

Ульяновская секция Поволжского отделения Российской Академии Космонавтики им. К. Э. Циолковского

Ульяновский Государственный Университет
Пара бесполезных Flash приложения

2 года назад состоялся семинар (на фото) на который приезжал программист из Самары и рассказывал о преимуществах бесплатной Flex-платформы и удобствах языка Action Script. Захотев поэкспериментировать с возможностями этой платформы, я столкнулся с проблемой выбора среды разработки. Предлагаемый от разработчиков компании Adobe FlexBuilder отпускался триалом на 60-дней и стоил дорого. Большинство бесплатных решений основывались на среде eclipse, кроме FlashDevelop. Недостатком среды eclipse является то, что она написана на языке java, который очень медленно работает на слабых машинах, вроде моей. Поэтому я остановился на FlashDevelop. В то время вышла его новая 3-ья версия, однако, она отличалась нестабильностью и через пару дней перестала адекватно работать. На этом я и остановился. Но 3 месяца назад, я наткнулся на книгу в интернете по Action Script и снова решил установить среду разработки FlashDevelop, на радость за пару лет разработчики гораздо её улучшили, и теперь впечатления от работы с ней, такие же приятные, как от работы с Visual Studio.   

Ниже представлены два Flash приложения. (их написание суммарно заняло 4 дня).

Первое рисует Солнечную систему. Траектории планет условные, представляют собой окружности среднего радиуса для орбиты каждой планеты, периоды обращения планет также усредненные. Соотношения размеров между планетами реальные. (использовались данные из Википдедии). Начальными условиями выбраны эфемериды планет по модели DE405/LE405, в которой за начальную эпоху была выбрана юлианская эфемеридная дата 2440400.5 (июнь 28, 1969) как последняя круглая дата перед началом регулярных сеансов лазерной локации Луны.

Синим для примера смоделирована гомановская переходная орбита, о которой рассказывалось в прошедшую субботу на семинаре, для случая соединения Земли и Марса.(см. конфигурации планет). Зеленым показан вектор скорости выхода космического летательного аппарата.

Для запуска движения планет необходим щелок мышью, повторный щелчок останавливает движение. Анимация увеличивается/уменьшается по размеру при прокручивании колесика мыши вверх/вниз. Масштабирование работает только во время движения планет, чтобы запустить его необходим щелчок мышью. Область рисования перетаскивается в желаемом направлении перемещением мыши с зажатой левой кнопкой. При наведении мыши на планету или её орбиту, они подсвечиаются и появляется контекстная подсказка с названием планеты. При выходе Солнца из области видимости красным крестиком обозначается направление на его положение.

Второе рисует карту Земли и проекцию орбиты спутника (без учета суточного вращения). Есть версия, которая парсит TLE по отдельным координатам и делает тоже самое, но она работает только локально, т.к. для неё требутся разрешения безопасности (нужен файл crossdomain.xml на celestrack/com и нашем сервере, либо только на нашем сервере + javascript оr something для закачки tle на сервер). 

Илдус, лучшая IDE для Flash/Flex/AS это Idea от JetBrains. Я на этих технологиях работаю уже больше года, и я попробовал все, что ты перечислял. У Idea есть программа EAP (early access program) которая позволяет бесплатно использовать бета версии в течение 30 дней, с возможностью обновления на следующую версию. Версии выходят обычно раз в 2 недели, так что всегда можно иметь живую и бесплатную версию. По поводу удобства скажу, что круче Idea только VS. Ей очень удобно и приятно пользоваться. Кроме того, там поддерживается куча других языков и фич.

Крайний EAP здесь. Будут вопросы по настройке - обращайся.

Ну а теперь долгожданная ложка дегтя. :) Сам по себе Flash убог до безобразия. С небольшими типовыми задачками все очень хорошо, но сложные приложения вызывают очень большие трудности. Поверь мне, я знаю, о чем говорю :)

Я бы рекомендовал Silverlight. :) Все равно flash ни под чем кроме винды по-человечески не работает и работать не будет :) Несмотря на то, что Silverlight поначалу существенно сложнее и запутаннее кажется, он значительно более удобен в разработке.

Цитата:
...оr something для закачки tle на сервер

Какой-нибудь скрипт на PHP, Python'е или что-то в этом духе, который по крону запускается и перекачивает файлы на наш сервер. Причем, файлы можно еще распарсить и сохранить в более удобном формате.

У меня модуль, который отображает карты, по началу так и работал. Сейчас работает принципиально так же, только через API Drupal'а. Так что первое что приходит в голову - изменить этот модуль с поддержкой технологии Flex. Это позволило бы разгрузить канал: сейчас он подкачивает данные с сервера. А так весь расчет выполнялся бы на стороне клиента, причем, включая перерисовку карты.

Спасибо, Сергей! Именно на это я надеялся, создавая второе приложение, значит его можно смело допиливать до полной функциональности.

Если возьмешься делать, передам тебе модуль и если надо сделаю экскурс в модули Drupal'а и алгоритмы расчета орбит, реализованные в моем модуле.

После исправления вращения Меркурия это с удовольствием будут показывать на уроках в школе. Можно представить на семинаре Лаборатории. При обсуждении обязательно появятся практические идеи.

А можно и оставить Меркурий как есть. Будет тест на внимательность. Я, кстати, не заметила: мне подсказали при просмотре.

Работа сделана интересно с точки зрения представления информации. Самое ценное, что самостоятельно и по собственной инициативе. 

Можно демонстрировать на уроках физики, информатики, астрономии, географии в школе и университете.

P.S. Только почему Меркурий вращается в противоположную сторону по сравнению с другими планетами?

Потому что оно пока бесполезное.

Жду мнений и идей можно/нужно ли их сделать полезными.

Илдус! Идея отличная! Для иллюстраций просто замечательная. Можно ли приспособить ее для лекций и выступлений?  Хорошо бы снабдить данную разработку вычислительной программой моделирования различных орбит и движения по ним КА. Вообще, если это возможно, то можно навесить на нее много разной полезной иформации, например, точки либрации, полости Роша, сферы Хилла и т.д. Это для лекций по космонавтике было бы очень важно.

Да, это вполне возможно  сделать и использовать локально на компьютере. Но я также думаю о том, как бы это применить в сети наподобие "The Space Game" .