Как устроен компьютерный планетарий
Обычно исходным пунктом для создателей компьютерных планетариев служат потребности земного наблюдателя. Чтобы ответить даже на самый простой для наблюдателя вопрос – какая звезда светит в окно перед восходом солнца – планетарий должен уметь выполнять уже достаточно сложные действия. Логику построения программы легче понять, наращивая ее мощность постепенно. Основные задачи компьютерного планетарияКомпьютерный планетарий решает три разные, хотя и тесно связанные задачи: Соответственно, логика планетария триедина: Отсюда последовательность реакции программы на действия пользователя: Построение виртуальной ВселеннойБазовые системы координатОтвлечемся пока от сложного комплекса движений Земли. Мы вернемся на Землю сильно позже, пока в нашей виртуальной Вселенной нет ни планет, ни звездного неба. Для создателя компьютерной модели Солнце есть абсолютный центр виртуальной Вселенной. Итак, Солнце у нас – центр и единственный оплот стабильности. Чтобы каким-либо осмысленным образом ориентироваться в пространстве, требуется ввести систему пространственных координат. Поскольку движение небесных тел тесно связано с круговым движением, удобной ситемой координат будет полярная, в которой нужно: «Встанем» в центре координат на базовую плоскость и направим свой взгляд в нулевую точку. Что нужно вычислить, чтобы описать местоположение произвольного объекта во введенной системе координат? Для начала находим направление, в котором этот объект расположен. Для этого вычисляем: Мы пока определили только центр системы, но еще не задали базовую плоскость и нулевое направление. Базовая плоскость выбирается из соображений удобства. Вернемся на время к конечной цели – земному наблюдателю. Для него две плоскости в пространстве явно выделены: Плоскости небесного экватора и эклиптики расположены под углом друг к другу. Ясно, что этот угол образуется потому, что ось вращения Земли вокруг своего центра не параллельна оси вращения центра Земли вокруг Солнца. Линия пересечения плоскосей небесного экватора и эклиптики дает на небесной сфере две выделенные точки: весеннего и осеннего равноденствия. В северной точке весеннего равноденствия Солнце в своем движении по эклиптике пересекает небесный экватор с юга на север (обратите внимание: в Астрономическом словаре русской версии RedShift 3 ошибочно написано «пересекает эклиптику»). Именно направление на точку весеннего равноденствия традиционно принимается за нулевое направление. Итак, мы получили две основные системы координат для небесной сферы: Несложно догадаться, в каких случаях будут наиболее удобны введенные системы: экваториальная – для наблюдателя, находящегося на поверхности Земли; эклиптическая – для изучения Солнечной системы в целом и рассмотрения траекторий космических зондов (плоскости орбит всех планет, кроме Плутона, близки к плоскости орбиты Земли, т.е. плоскости эклиптики). Итак, наша виртуальная Вселенная пока состоит только из Солнца, лежащего на линии пересечения двух плоскостей, угол между которыми примерно 23,5 градуса (угол наклона земной оси к плоскости орбиты Земли). В одном из направлений этой линии пересечения находится нулевая точка северного весеннего равноденствия. В плоскости эклиптики позже будет лежать орбита Земли, в плоскости, параллельной экваториальной – земной экватор.
Все. Приступаем к заселению нашего мира. Расположение объектов во ВселеннойВсякому школьнику известно, что законы небесной механики строги и позоляют «на кончике пера» открывать новые планеты. Но не каждый пользователь задумывался, с каким объемом вычислений связаны такие открытия. Количество факторов, влияющих на поведение небесного тела теоретически бесконечно. Поэтому всякое вычисление есть лишь приблизительный расчет с заданной степенью точности. В случае настольного компьютерного планетария несомненно важным фактором является быстродействие программы (обеспечение работы пользователя «в реальном времени»), которое напрямую зависит не только от искусства программистов, но и от принятых для расчета формул и методов. Мы не будем углубляться в математические тонкости. Более подробную информацию вы можете найти в Приложении «Основные принципы моделирования» к RedShift 3 Help Manual (встроенном в программу) и в специальной литературе. Мне хотелось бы более наглядно указать на различие принятых способов моделирования, поскольку это позволит пользователю лучше представлять назначение соответствующих элементов управления. Для вычисления положения объектов во Вселенной в выбранный момент времени используются три основных способа: 12Планеты обращаются вокруг Солнца по траекториям, с большой точностью описываемой уравнением эллипса. Классические школьные формулы Ньютона и Кеплера для решения т.н. задачи двух тел (чаще – ограниченной задачи двух тел, т.е. движения объекта в гравитационном поле гораздо более массивного центра притяжения, в данном случае – Солнца) – вот и все, что вам поначалу нужно для описания их движения. Но для других спутников, а также для массы комет и астероидов чаще всего используется приближенное решение в рамках ограниченной задачи двух тел. Следует заметить, что в принципе решение в рамках задачи двух тел может описывать и существенно более сложные траектории, нежели просто эллипс или гиперболу вокруг центра притяжения. Например, нетривиальная траектория облета Луны аппаратом Apollo-13 может быть быть расчитана в рамках задачи двух тел при помощи метода Сфер действия, сущность которого состоит примерно в следующем. Считается что объект, траектория которого расчитывается, всегда движется в поле притяжения только одного центра (в его Сфере действия), но по мере удаления от одного из центров (в нашем примере – от Земли) к другому (Луне) кеплеровская траектория, считавшаяся относительно Земли, переходит в также кеплеровскую, но считаемую относительно Луны. Если продолжать смотреть на все это с Земли, то сумма кеплеровского движения Apollo вокруг Луны и собственного движения Луны вокруг Земли окажется замысловатой «восьмеркой». (Разобраться подробнее в этом весьма наглядном методе вы можете с помощью замечательной книги В.И.Левантовского «Механика космического полета в элементарном изложении».) 3Численное интегрирование – наиболее точный метод расчета траектории объекта, который, однако, сопряжен и с наибольшим объемом вычислений. В любой момент времени мы можем вычислить гравитационное ускорение, сообщаемое объекту каждым небесным телом в отдельности, а значит, можем вычислить (путем векторного сложения) и суммарное ускорение. Зная величину и направление начальной скорости объекта (то есть обладая исходной базой табличных данных) можно, учитывая вычисленное ускорение, рассчитать положение и скорость объекта через небольшой промежуток времени, например через секунду. Для нового момента нужно будет заново вычислить ускорение и затем рассчитать следующее положение аппарата и его скорость и т.д. Точность рассчета можно как угодно повысить, уменьшив временной шаг. Конечно, при этом резко возрастает и объем вычислений. Точность расчета зависит также от количества небесных тел, чье притяжение вы рассматриваете как существенное при вычислении суммарного гравитационного ускорения. Описанная процедура и называется численным интегрированием. Мощный механизм численного интегрирования также доступен пользователю RedShift 3, что выгодно отличает программу от других компьютерных планетариев. Вы можете расчитать более точную орбиту одной избранной кометы (Отображение\ Фильтры\ Кометы\ Выбрать комету + Точный расчет) или одного астероида или одного космического аппарата – короче говоря, только одного объекта одновременно. Итак, теперь нам уже есть на что взглянуть в нашей виртуальной Вселенной. Мы также знаем, что построенный мир живет по собственным правилам – законам небесной механики. Но помимо небесных объектов, на которые мы будем смотреть, компьютерный планетарий должен предоставить нам средство для наблюдения – виртуального наблюдателя, глазами которого мы увидим созданный мир. Важно научиться видеть виртуальный космос оттуда и так, как нам бы этого хотелось. Иначе говоря, каким бы мощным ни был встроенный механизм рассчета координат, пользователь увидет только то, что позволят ему система визуализации данных и интерфейс программы. Исследование виртуальной ВселеннойЭффективность исследования созданной компьютерной модели в значительной степени зависит от предоставляемых пользователю интерфейсных средств. Мало толку, если вы научили свою модель рассчитывать сложнейшее трехмерное взаиморасположение объектов, но не обеспечили пользователя возможностью осмысленно перемещаться в виртуальном мире и получать необходимую информацию. Мы уже отмечали, что компьютерные планетарии отличаются друг от друга используемыми базами данных, алгоритмами расчетов, библиотеками изображений, текстур и т.п. Но наиболее явно отличия проявляются в пользовательском интерфейсе. При всем многообразии используемых планетариями интерфейсных решений, основные принципы остаются общими, хотя часто тонут в нагромождении панелей, меню и диалоговых окон. Главные функции, которые должен выполнять интерфейс развитого компьютерного планетария:
1В первом приближении будем считать, что пользователь не может ни редактировать орбитальные элементы объектов, ни вводить новые базы и алгоритмы, короче говоря, свойства объектов виртуальной Вселенной заданы разработчиками и неизменны. В таком случае, остается единственный параметр, доступ к которому всегда имеет пользователь и который прямо влияет на трехмерную картину взаиморасположения объектов. 2Определив когда производится наблюдение, пользователь должен ответить еще на два вопроса: где находится виртуальный наблюдатель и куда и как он смотрит. Определить местоположение значит: Выбрать координатную систему Определить взгляд значит: Определить крен (то есть поворот рамки экрана относительно оси направления взгляда). Выбрать увеличение (поле зрения). Если вы без потерь преодолели барьер простейших координатных систем и выставили виртуального наблюдателя в нужном месте носом в нужную точку – большая часть дела сделана. Но это еще не все. Есть еще одна важная проблема, значительность которой в планетариях затушевывается (как и в случае с креном) за счет введения удобных предустановок. За это пользователь расплачивается меньшей гибкостью программы. Я имею ввиду систему фиксации координат. Выставленные на предыдущем этапе местоположение и взгляд нужно определить во времени. В простейшем случае предустановки планетариев таковы: Например, если виртуальный наблюдатель «привязан» к поверхности Земли, то его географические координаты остаются неизменными во времени и он повторяет сложные движения реального земного наблюдателя. При этом, очевидно, координаты положения наблюдателя в гелиоцентрической системе меняются достаточно замысловато. Это кажется очевидным. На самом деле подобные предустановки вовсе не обязательны. Например, находясь на поверхности виртуальной Земли, я выставил направление взгляда относительно горизонтальной системы. После чего запускаю в программе ход времени. Координаты моего взгляда неизменны относительно горизонта. А если я хочу, чтобы оставалось неподвижным небо на экране, и черт с ним, с горизонтом – пусть прыгает как хочет (особенно если сделать его полупрозрачным)? Вот здесь уже начинаются разночтения и каждый планетарий решает их по-своему. Самый простой способ дополнительной «умной» фиксации направления взгляда доступен практически в каждом планетарии. Как мы уже говорили, программы обычно позволяют направить взгляд на выбранный пользователем в качестве цели объект. Чаще всего, можно «зафиксировать» выбранный объект в центре поля зрения виртуального наблюдателя (то есть в центре экрана) с помощью той или иной кнопки с замочком или из меню.
34С частными случаями системы поиска объектов мы уже знакомы. Ведь для того, чтобы встать или посмотреть на объект нужно предварительно найти его в каком-то списке. Обычно в планетариях есть также диалог Поиск и возможность выбрать объект курсором на экране. 5
|