Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.abitu.ru/en2002/closed/viewwork.html?work=82
Дата изменения: Fri May 5 15:26:15 2006
Дата индексирования: Tue Oct 2 02:25:11 2012
Кодировка: koi8-r

Поисковые слова: equinox


Тренажер по метеорам


Автор работы: Журавок Василий Юрьевич


Городской Дворец детского (юношеского) творчества, 9 класс, Омск


e-mail: programmers@rambler.ru


scgdt@sch.omskreg.ru


Научные руководители:


Пономарева Маргарита Михайловна, педагог дополнительного образования
ГДд(ю)т


Леус Елена Владимировна, педагог дополнительного образования ГДд(ю)т


Крупко Владимир Николаевич, педагог дополнительного образования
ГДд(ю)т

2002-2003 гг.


1. Техническое задание


Наблюдение метеоров представляет широкое поле деятельности для любителей
астрономии. Некоторые наблюдения и по сей день нельзя провести без их
участия.
Визуальные наблюдения метеоров проводятся как для поисков новых или
теоретически предсказанных кометных радиантов, так и для определения
положения и смещения радиантов малых метеорных потоков, часовые числа
которых незначительны и составляют всего 2-3 метеора в час. Они проводятся
также для изучения активности исчезающих потоков.
Эти задачи могут быть решены нанесением путей метеоров на звездные карты.
Определение радиантов требует предварительной тренировки на богатых яркими
метеорами потоках.
Для определения радиантов по визуальным наблюдениям необходимы копии карт
звездного неба, часы, карандаши, фонарик для освещения (его яркость должна
быть сильно ослаблена цветным светофильтром), журнал для записи данных
наблюдений метеоров и линейка.
Для этого необходимы некоторые навыки. Поэтому появилась необходимость
разработки программного продукта, который будет вырабатывать данные навыки.
Цель работы: разработка тренажера по метеорам для разных категорий
пользователей (новички, опытные, профессионалы). Для тренировки
пользователь может выбирать один из 4-х наиболее распространенных потоков:
Персеиды, Леониды, Дракониды и Ориониды.
Информационная ценность и новизна этой работы в том, что моделирование
происходит близко к реальному режиму (в характеристиках потоков задаются
цвет метеоров, скорость, равномерный вылет или пачками, наличие следов).
В нашей работе ведется оценка знаний и готовности практических навыков
наблюдателей метеоров. Еще одним преимуществом данной программы является
изменение уровня сложности программы в зависимости от опытности
наблюдателя.


2. Описание программы и алгоритм решения


В программе заданы следующие характеристики потоков:
Пачками летают метеоры или равномерно.
Следы остаются или нет.
Быстрые или медленные метеоры.
Цвет метеоров.
Предусмотрены следующие уровни сложности:
Для новичков
Каждый метеор вылетает по нажатию на кнопку.
Для опытных наблюдателей
Метеоры летают без участия человека.
Для профессионалов
Профессионалу предлагается тест. В случае выбора неверных характеристик
потоков он не допускается к наблюдениям. Метеоры летают без участия
человека.
Алгоритм прорисовки метеоров.
Основной сложностью в написании программы был алгоритм прорисовки
метеоров. Это была самая трудоемкая часть работы.
Его реализация была связана с некоторыми техническими трудностями: для
рисования нельзя было использовать основной поток программы, который
создается по умолчанию и используется для нужд управления пользовательским
интерфейсом программы, потому что при таком использовании интерфейс
пользователя не способен к работе при выполнении прорисовки, что выглядит
как "зависание" программы и в некоторых ситуациях способно вызвать
зависание системы.
Возможны два решения проблемы - выполнять прорисовку по таймерному событию
или создать дополнительный поток. При использовании таймерного события
понижается как быстродействие программы, так и быстродействие всей системы
в целом. Минимальный квант времени, через который таймер генерирует
событие, не позволяет обеспечить достаточную скорость прорисовки метеоров.
Мы решили создать новый поток, однако возникли новые трудности - дело в
том, что потоки, созданные в процессе выполнения основного потока, не
предназначены для управления пользовательским интерфейсом, по крайней мере,
так сказано в документации по Win32 программированию.
Вместо управления интерфейсом из дополнительного потока, управление
происходит из основного процесса, а для вызова процедур из дополнительного
потока в контексте основного, потоки синхронизируются (используется вызов
Synchronize).




событие






Основной поток программы Поток, реализованный классом
ТСТ
(создается по умолчанию Delphi) (поток просчета координат
метеоров)

В потоке просчета координат метеоров мы не можем поставить точку на экран,
не можем использовать процедуры управления пользовательским интерфейсом.
Расчет координат метеора происходит исходя из точки центра области, угла с
осью Oy и расстояния до центра (радиус) по формулам: x=x0+cos(a)*r,
y=y0+sin(a)*r. Формула оптимизирована таким образом, что сначала находится
разница, на которую изменяются координаты за один шаг, а потом происходит
пересчет координат в цикле и вывод точек на форму.
Основной алгоритм прорисовки метеоров реализуется процедурой flight.
Основные переменные:
x, y - координаты точки метеора;
x0, y0 - точка радианта (центр области);
a - угол с осью ОY;
r - текущий радиус;

Y (x, y)

r
a
X

До цикла происходит инициализация переменных:
dx = cos (a)
dy = sin (a)
x = x0
y = y0
В цикле выполняется расчет координат точек метеора:
x = x + dx
y = y + dy
где dx, dy - разница между точками метеора.
Класс ТСТ - реализует поток вычислений точек метеора:
TCT = class (Tthread)
Public
rrx - координата X точки радианта;
rra - угол, образованный прямой, по которой летит метеор, с
осью OY;
rry - координата Y точки радианта;
rrstart - радиус начала интервала наблюдения полета
метеоров;
rrend - радиус конца интервала наблюдения полета метеоров;
rl - длина «хвоста» (след метеора);
..
end;


3. Инструкция пользователя


Для запуска тренажера вызывается файл meteors.exe. На экране появляется
карта звездного неба с названием программы и кнопки «Старт», «Следующий
метеор», «Показать метеоры», «Печать», «Печать без метеоров», «Помощь»,
«Выход».
До начала работы тренажера необходимо нажать кнопку «Старт». При этом на
экран выводится окно с группами радиокнопок:
Вид потока
Персеиды
Леониды
Дракониды
Ориониды
Уровень сложности
Новичок
Опытный
Профессионал
Пользователь должен выбрать вид потока и уровень сложности.
После этого на экран выводится окно «Введите имя», а затем диалог
«Сохранение». Пользователь вводит имя файла для сохранения результатов
наблюдений. Расширение в имени файла «*.met».
Если выбран уровень сложности «Новичок», то каждый следующий метеор
вылетает только по нажатию на кнопку «Следующий метеор». А в остальных
уровнях сложности эта кнопка не активна.
В уровне «Опытный» метеоры пролетают через определенный промежуток времени,
заданный в характеристиках потока.
При выборе уровня «Профессионал» на экран выводится дополнительное окно
«Тест» (рис.1). Пользователь в этом случае должен выбрать правильные
характеристики для выбранного потока. Если характеристики выбраны
правильно, наблюдатель допускается к наблюдениям, а в противном случае -
выдается окно с сообщением «Вы не правильно указали параметры».
Кнопка «Стоп» - для окончания наблюдений.
Кнопка «Показать метеоры» - для вывода на экран карты звездного неба с
пролетевшими метеорами (рис.2). Для этого надо выбрать имя соответствующего
файла из списка в окне «Метеоры».
Кнопка «Печать» - для вывода на принтер карты звездного неба с пролетевшими
метеорами.
Кнопка «Печать без метеоров» - для вывода на принтер карты звездного неба
без метеоров.





















4. Полученные результаты и выводы


Разработанная программа полностью моделирует реальный режим полета
метеоров.
Программа является существенным дополнением к методике подготовки
наблюдателей метеоров.
В программе реализованы 3 уровня сложности: новичок, опытный наблюдатель,
профессионал.
Программа позволяет сохранять на диск и выводить на печать результаты, т.е.
карту с пролетевшими метеорами, что позволяет преподавателю контролировать
обучение и отслеживать рост мастерства наблюдателей. Качество усвоения
материала (знание звездного неба и параметров метеоров и их потоков) и
опытность наблюдателя постоянно повышаются за счет возможности повторного
прохождения теста.
В данном варианте программы стояла задача: работать с конкретными картами
звездного неба и конкретными метеорными потоками. Поэтому параметры
метеоров и карты неба задаются в программе. В перспективе планируется
добавить режим, в котором можно будет пользователю добавлять новые
метеорные потоки.
Программа оформлена так, что даже неопытному пользователю легко с ней
работать. Окно программы разворачивается на весь экран, поэтому ненужные в
данный момент элементы Windows не мешают наблюдению метеоров. Для тех
наблюдателей, кто работает с тренажером впервые, можно включить режим
всплывающих подсказок.


5. Среда создания и модули, требуемые для выполнения программы

Программа написана на языке Object Pascal в оболочке Delphi 5.0. Для работы
программы необходим IBM-совместимый компьютер с Windows 9x/Me, NT/2000.
Процессор Pentium 300MHz и выше (до PentiumШ 733MHz). Необходима поддержка
разрешения видеокарты 1024х768 16 bit.
Исходный текст программы приведен в файлах:
Unit1.pas - интерфейс пользователя;
Unit2.pas - алгоритм прорисовки метеоров;
Unit3.pas -выбор уровня сложности и вида потока;
Unit4.pas -тест для профессионала;
Unit6.pas -ввод имени пользователя;
Unit7.pas -печать карты без метеоров.

Файл для запуска meteors.exe.



6. Библиографический список


1. Электронная справка Delphi 5 Help (Borland Inc.).
2. Delphi 5 (изд. BHV, авторы - Гофман, Хомоненко).
3. А.Я. Архангельский. Delphi 5. -М.:ЗАО «Изд. Бином», 2001.
-----------------------

Ставит точку
(X, Y)


Расчет
(X, Y)

[pic]

Рис.2

Рис.1

[pic]