Как устроен компьютерный планетарий

•  Основные задачи компьютерного планетария
•  Построение виртуальной Вселенной
•  Иследование виртуальной Вселенной


Увеличить изображение в отдельном окне  

Тема «компьютер в астрономическом моделировании» весьма обширна. Рассмотрим общую логику работы компьютерного планетария на примере программы RedShift 3. Понимание общих принципов поможет начинающему пользователю быстрее освоить программу схожего класса и добиваться от нее максимума.

Обычно исходным пунктом для создателей компьютерных планетариев служат потребности земного наблюдателя. Чтобы ответить даже на самый простой для наблюдателя вопрос – какая звезда светит в окно перед восходом солнца – планетарий должен уметь выполнять уже достаточно сложные действия. Логику построения программы легче понять, наращивая ее мощность постепенно.

Основные задачи компьютерного планетария

Компьютерный планетарий решает три разные, хотя и тесно связанные задачи:
1. Создает модель космоса с помощью каталогов, аналитических и численных рассчетов;
2. Создает виртуального наблюдателя и показывает модель космоса с его точки зрения;
3. Предоставляет пользователю возможность управлять виртуальным наблюдателем (отчасти и моделью).

Соответственно, логика планетария триедина:
1. Модель (виртуальная Вселенная);
2. Отображение модели на экране;
3. Интерфейс модель–пользователь.

Отсюда последовательность реакции программы на действия пользователя:
1. Пользователь в рамках предоставляемых ему интерфейсом возможностей определяет когда, куда и как поместить виртуального наблюдателя;
2. Рассчетный модуль, дополняя считанные с пользовательского интерфеса данные рядом предустановленных параметров, производит необходимые вычисления и предоставляет их результат;
3. Виртуальный наблюдатель, используя библиотеки изображений, шрифтов и прочих ресурсов формирует на основе рассчитанных данных конечное изображение на экране.


Построение виртуальной Вселенной

Базовые системы координат

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

Итак, Солнце у нас – центр и единственный оплот стабильности. Чтобы каким-либо осмысленным образом ориентироваться в пространстве, требуется ввести систему пространственных координат. Поскольку движение небесных тел тесно связано с круговым движением, удобной ситемой координат будет полярная, в которой нужно:
1. Определить центр координат;
2. Задать базовую плоскость, проходящую через центр координат;
3. Один из лучей, лежащих в базовой плоскости, объявить нулевым.

«Встанем» в центре координат на базовую плоскость и направим свой взгляд в нулевую точку. Что нужно вычислить, чтобы описать местоположение произвольного объекта во введенной системе координат?

Для начала находим направление, в котором этот объект расположен. Для этого вычисляем:
1. На какой угол нужно повернуться влево-вправо (и в какую именно сторону). Эта координата будет называться долготой;
2. На какой угол нужно поднять-опустить взгляд. Эта координата будет называться широтой;
После этого
3. Измеряем расстояние от центра координат до объекта. Эта координата будет называться дистанцией.

Мы пока определили только центр системы, но еще не задали базовую плоскость и нулевое направление. Базовая плоскость выбирается из соображений удобства. Вернемся на время к конечной цели – земному наблюдателю. Для него две плоскости в пространстве явно выделены:

1. Плоскость небесного экватора
Земля, вращаясь вокруг своей оси, кружит наблюдателя в плоскости, параллельной земному экватору. Для наблюдателя «кружится» небесная сфера, на которой поэтому наблюдатель различает точки полюсов и экватор между ними.

2. Плоскость эклиптики
Для наблюдателя на Солнце Земля, совершая годичный оборот, прочерчивает на небесной сфере окружность. С точки зрения земного наблюдателя, такую же окружность прочерчивает Солнце в своем годичном движении. Эклиптика есть годичный путь Солнца по небесной сфере, а плоскость эклиптики есть просто усредненная плоскость земной обиты.

Плоскости небесного экватора и эклиптики расположены под углом друг к другу. Ясно, что этот угол образуется потому, что ось вращения Земли вокруг своего центра не параллельна оси вращения центра Земли вокруг Солнца. Линия пересечения плоскосей небесного экватора и эклиптики дает на небесной сфере две выделенные точки: весеннего и осеннего равноденствия. В северной точке весеннего равноденствия Солнце в своем движении по эклиптике пересекает небесный экватор с юга на север (обратите внимание: в Астрономическом словаре русской версии RedShift 3 ошибочно написано «пересекает эклиптику»). Именно направление на точку весеннего равноденствия традиционно принимается за нулевое направление.

Итак, мы получили две основные системы координат для небесной сферы:

1. Экваториальная
Центр – Солнце, базовая плоскость – плоскость небесного экватора, нулевое направление – на точку весеннего равноденствия.
Координаты направления в экваториальной системе традиционно носят специфические названия склонения (аналог широты) и прямого восхождения (аналог долготы).

2. Эклиптическая
Центр – Солнце, базовая плоскость – плоскость орбиты Земли (плоскость эклиптики) нулевое направление – на точку весеннего равноденствия.

Несложно догадаться, в каких случаях будут наиболее удобны введенные системы: экваториальная – для наблюдателя, находящегося на поверхности Земли; эклиптическая – для изучения Солнечной системы в целом и рассмотрения траекторий космических зондов (плоскости орбит всех планет, кроме Плутона, близки к плоскости орбиты Земли, т.е. плоскости эклиптики).

Итак, наша виртуальная Вселенная пока состоит только из Солнца, лежащего на линии пересечения двух плоскостей, угол между которыми примерно 23,5 градуса (угол наклона земной оси к плоскости орбиты Земли). В одном из направлений этой линии пересечения находится нулевая точка северного весеннего равноденствия. В плоскости эклиптики позже будет лежать орбита Земли, в плоскости, параллельной экваториальной – земной экватор.

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

Все. Приступаем к заселению нашего мира.

Расположение объектов во Вселенной

Всякому школьнику известно, что законы небесной механики строги и позоляют «на кончике пера» открывать новые планеты. Но не каждый пользователь задумывался, с каким объемом вычислений связаны такие открытия. Количество факторов, влияющих на поведение небесного тела теоретически бесконечно. Поэтому всякое вычисление есть лишь приблизительный расчет с заданной степенью точности. В случае настольного компьютерного планетария несомненно важным фактором является быстродействие программы (обеспечение работы пользователя «в реальном времени»), которое напрямую зависит не только от искусства программистов, но и от принятых для расчета формул и методов.

Мы не будем углубляться в математические тонкости. Более подробную информацию вы можете найти в Приложении «Основные принципы моделирования» к RedShift 3 Help Manual (встроенном в программу) и в специальной литературе. Мне хотелось бы более наглядно указать на различие принятых способов моделирования, поскольку это позволит пользователю лучше представлять назначение соответствующих элементов управления.

Для вычисления положения объектов во Вселенной в выбранный момент времени используются три основных способа:
1. Считывание табличных значений;
2. Аналитический расчет;
3. Численное интегрирование.

1

Увеличить изображение в отдельном окне  

Поскольку положение звезд и Объектов дальнего космоса слабо меняется во времени, поначалу достаточно выбрать достойный каталог (как, например, самый модный ныне каталог Гиппарх-Тихо для звезд и Sky Catalog 2000 для Объектов дальнего космоса – см. их описания в Приложениях 19, 20) и найти в нем координаты Склонения и Прямого восхождения (т.е. координаты, задающие направление в Экваториальной системе сферических координат – см. Часть 1) для каждого объекта, после чего «разместить» их на бесконечно удаленной от Солнца сфере. (Для значительного числа звезд и дальних объектов известны также расстояние до Солнца и медленное собственное движение, которые в дальнейшем будут учтены).

Увеличить изображение в отдельном окне  

Сведения о расстояниях до ближайших звезд и прочих удаленных объектов в RedShift 3 визуализируются в окне Информация об объекте (Щелкните курсором в объект на экране или вызовите Информация\ Поиск…\Информация\ Детально\ Положение в космосе).

2

Планеты обращаются вокруг Солнца по траекториям, с большой точностью описываемой уравнением эллипса. Классические школьные формулы Ньютона и Кеплера для решения т.н. задачи двух тел (чаще – ограниченной задачи двух тел, т.е. движения объекта в гравитационном поле гораздо более массивного центра притяжения, в данном случае – Солнца) – вот и все, что вам поначалу нужно для описания их движения.

Увеличить изображение в отдельном окне  

На самом деле, получаемые столь простым способом координаты планет недостаточно точны и в RedShift используется иная процедура, основанная в конечном счете на результатах численного интегрирования (проделанного в JPL) – см. Приложение 17. Для наиболее «важных» спутников планет (Луна, спутники Марса и галилеевы спутники Юпитера) также используются сложные теории – см. Приложение 18.

Но для других спутников, а также для массы комет и астероидов чаще всего используется приближенное решение в рамках ограниченной задачи двух тел.

Следует заметить, что в принципе решение в рамках задачи двух тел может описывать и существенно более сложные траектории, нежели просто эллипс или гиперболу вокруг центра притяжения. Например, нетривиальная траектория облета Луны аппаратом Apollo-13 может быть быть расчитана в рамках задачи двух тел при помощи метода Сфер действия, сущность которого состоит примерно в следующем.

Считается что объект, траектория которого расчитывается, всегда движется в поле притяжения только одного центра (в его Сфере действия), но по мере удаления от одного из центров (в нашем примере – от Земли) к другому (Луне) кеплеровская траектория, считавшаяся относительно Земли, переходит в также кеплеровскую, но считаемую относительно Луны. Если продолжать смотреть на все это с Земли, то сумма кеплеровского движения Apollo вокруг Луны и собственного движения Луны вокруг Земли окажется замысловатой «восьмеркой». (Разобраться подробнее в этом весьма наглядном методе вы можете с помощью замечательной книги В.И.Левантовского «Механика космического полета в элементарном изложении».)

Увеличить изображение в отдельном окне  

«Восьмерка» корабля Apollo-13, рассчитанная RedShift 3 с помощью численного интегрирования (режим Точный расчет орбиты в Отображение\ Фильтры\ Космический аппарат включен. Также включена опция отображения следа – не путайте с орбитой, которая есть не траектория реального движения, а лишь мгновенная орбита в приближении задачи двух тел).

3

Численное интегрирование – наиболее точный метод расчета траектории объекта, который, однако, сопряжен и с наибольшим объемом вычислений.

В любой момент времени мы можем вычислить гравитационное ускорение, сообщаемое объекту каждым небесным телом в отдельности, а значит, можем вычислить (путем векторного сложения) и суммарное ускорение. Зная величину и направление начальной скорости объекта (то есть обладая исходной базой табличных данных) можно, учитывая вычисленное ускорение, рассчитать положение и скорость объекта через небольшой промежуток времени, например через секунду. Для нового момента нужно будет заново вычислить ускорение и затем рассчитать следующее положение аппарата и его скорость и т.д. Точность рассчета можно как угодно повысить, уменьшив временной шаг. Конечно, при этом резко возрастает и объем вычислений. Точность расчета зависит также от количества небесных тел, чье притяжение вы рассматриваете как существенное при вычислении суммарного гравитационного ускорения. Описанная процедура и называется численным интегрированием.

Мощный механизм численного интегрирования также доступен пользователю RedShift 3, что выгодно отличает программу от других компьютерных планетариев. Вы можете расчитать более точную орбиту одной избранной кометы (Отображение\ Фильтры\ Кометы\ Выбрать комету + Точный расчет) или одного астероида или одного космического аппарата – короче говоря, только одного объекта одновременно.

Увеличить изображение в отдельном окне  

Близкая к реальной траектория «Большого тура» космического аппарата Voyager-2. Обратите внимание на «изломы» траектории при пролете вблизи планет. Траектории получаются более достоверными при выборе Автоматического шага при расчете.

Итак, теперь нам уже есть на что взглянуть в нашей виртуальной Вселенной. Мы также знаем, что построенный мир живет по собственным правилам – законам небесной механики.

Но помимо небесных объектов, на которые мы будем смотреть, компьютерный планетарий должен предоставить нам средство для наблюдения – виртуального наблюдателя, глазами которого мы увидим созданный мир. Важно научиться видеть виртуальный космос оттуда и так, как нам бы этого хотелось. Иначе говоря, каким бы мощным ни был встроенный механизм рассчета координат, пользователь увидет только то, что позволят ему система визуализации данных и интерфейс программы.


Исследование виртуальной Вселенной

Эффективность исследования созданной компьютерной модели в значительной степени зависит от предоставляемых пользователю интерфейсных средств. Мало толку, если вы научили свою модель рассчитывать сложнейшее трехмерное взаиморасположение объектов, но не обеспечили пользователя возможностью осмысленно перемещаться в виртуальном мире и получать необходимую информацию.

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

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

Главные функции, которые должен выполнять интерфейс развитого компьютерного планетария:

  1. Осуществлять контроль за расположением объектов;
  2. Осуществлять контроль за местоположением и взглядом виртуального наблюдателя;
  3. Осуществлять настройки изображения;
  4. Осуществлять поиск объектов и информации о них;
  5. Осуществлять поиск событий (комбинаций объектов) и информации о них.

1

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

Увеличить изображение в отдельном окне   Этот параметр – время. Меняя время наблюдения, пользователь перемещает объекты по их орбитам. Одновременно перемещается в пространстве программы и виртуальный наблюдатель, «привязанный» к одному из объектов.

2

Определив когда производится наблюдение, пользователь должен ответить еще на два вопроса: где находится виртуальный наблюдатель и куда и как он смотрит.

Определить местоположение значит:

  • Выбрать координатную систему
    Легче всего реализуемой на компьютере является неподвижная гелиоцентрическая система координат. Наиболее важной для пользователя – связанная с поверхностью Земли географическая система, положение относительно которой для несуетного жителя Земли не изменяется во время наблюдений реального неба.

    Увеличить изображение в отдельном окне  

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

  • Определить взгляд значит:

    Увеличить изображение в отдельном окне  

  • Выбрать координатную систему для задания направления взгляда.
    В простейшем случае планетарии предоставляют пользователю на выбор относительно понятную горизонтальную систему координат направления (Azm/Alt), если виртуальный наблюдатель находится на поверхности небесного тела, и экваториальную систему (RA/Dec), смысл которой также достаточно ясен начинающему пользователю (см. Часть 1), да к тому же не зависящую от местоположения на Земле и общепринятую в астрономический изданиях.

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

  • Определить крен (то есть поворот рамки экрана относительно оси направления взгляда).
    Вообще говоря, крен – довольно сложный параметр и не всегда очевидно, как сделать управление креном и гибким и понятным.
    Свободное управление по крену в планетариях чаще всего отсутствует, изображение просто выравнивается относительно избранной плоскости (не обязательно базовой плоскости системы координат местоположения или направления). Такая система хорошо работает, когда виртуальный наблюдатель находится на поверхности объекта и выравнивание рамки экрана относительно горизонта кажется очевидным. Если же наблюдатель «выходит в открытый космос» насильственное выравнивание зачастую становится бессмысленным.

  • Выбрать увеличение (поле зрения).
    «Увеличение» в планетарии связано с полем зрения простой зависимостью 1/x: вдвое больше увеличение = вдвое меньше поле зрения. RedShift 3 оперирует понятием «увеличение», поскольку при изменении размеров окна программы (мышью-за-уголок) поле зрение произвольно меняется, а увеличение (связанное с угловыми расстояниями между объектами) остается неизменным.
    Напомню, кстати, наиболее простой способ менять увеличение в окне RedShift 3: нажмите клавишу Shift (Alt для уменьшения) одновременно с кнопкой мыши и выделите на экране область, требующую увеличения.

    Если вы без потерь преодолели барьер простейших координатных систем и выставили виртуального наблюдателя в нужном месте носом в нужную точку – большая часть дела сделана. Но это еще не все. Есть еще одна важная проблема, значительность которой в планетариях затушевывается (как и в случае с креном) за счет введения удобных предустановок. За это пользователь расплачивается меньшей гибкостью программы. Я имею ввиду систему фиксации координат.

    Выставленные на предыдущем этапе местоположение и взгляд нужно определить во времени. В простейшем случае предустановки планетариев таковы:

  • Если пользователь выставил положение виртуального наблюдателя относительно некоторой системы координат, то с течением времени или при изменении взгляда положение наблюдателя остается неизменным именно в этой системе.
    Например, если виртуальный наблюдатель «привязан» к поверхности Земли, то его географические координаты остаются неизменными во времени и он повторяет сложные движения реального земного наблюдателя. При этом, очевидно, координаты положения наблюдателя в гелиоцентрической системе меняются достаточно замысловато.
  • Если пользователь выставил направление взгляда виртуального наблюдателя относительно некоторой системы координат, то с течением времени или при изменении координат местоположения направления взгляда остается неизменным именно в этой системе.

    Это кажется очевидным. На самом деле подобные предустановки вовсе не обязательны. Например, находясь на поверхности виртуальной Земли, я выставил направление взгляда относительно горизонтальной системы. После чего запускаю в программе ход времени. Координаты моего взгляда неизменны относительно горизонта. А если я хочу, чтобы оставалось неподвижным небо на экране, и черт с ним, с горизонтом – пусть прыгает как хочет (особенно если сделать его полупрозрачным)? Вот здесь уже начинаются разночтения и каждый планетарий решает их по-своему. Самый простой способ дополнительной «умной» фиксации направления взгляда доступен практически в каждом планетарии. Как мы уже говорили, программы обычно позволяют направить взгляд на выбранный пользователем в качестве цели объект. Чаще всего, можно «зафиксировать» выбранный объект в центре поля зрения виртуального наблюдателя (то есть в центре экрана) с помощью той или иной кнопки с замочком или из меню.

    Увеличить изображение в отдельном окне   Вызвав с панели Слежение окно Иллюстрация движения, вы можете лучше представить себе, какие фиксации вам доступны в RedShift 3.

    3

    Увеличить изображение в отдельном окне  

    Настройки отображения – еще одна важнейшая функция интерфейса компьютерного планетария.
    Все планетарии в той или иной мере позволяют пользователю менять количество и внешний вид изображаемых на экране объектов – включать и выключать звезды, планеты, орбиты, сетки, подписи и т.д.

    4

    С частными случаями системы поиска объектов мы уже знакомы. Ведь для того, чтобы встать или посмотреть на объект нужно предварительно найти его в каком-то списке. Обычно в планетариях есть также диалог Поиск и возможность выбрать объект курсором на экране.

    Увеличить изображение в отдельном окне  

    Объем информации об объектах может варьироваться от нуля до ссылок на бесконечные ресурсы Интернет. Обычно информация подразделяется на заранее заготовленную (фото, физические данные и т.п.) и рассчитываемую (текущие координаты положения и ориентации в различных системах, звездная величина, расстояние до наблюдателя и т.п.).

    5

    Увеличить изображение в отдельном окне  

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

  •   К началу страницы