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

Вектор в декартовых координатах

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

Далее мы перейдем в новую систему (например из плоскости эклиптики в плоскость экватора) также в терминах декартовых координат. На последнем шаге мы снова переведм декартовы координаты уже в новой системе обратно в сферические углы. Таким образом мы завершим искомое преобразование одних сферических координат в другие.

Для удобства мы введем понятие вектора в декартовых координатах как указателя на объект в привычной системе координат .

Вектор имеет

  • начальную точку с координатами
  • конечную точку с координатами , которая совпадает с местоположением объекта в пространстве.

Обозначим вектор буквой и запишем его следующем виде:

В этой нотации мы имеем в виду, что вектор имеет протяженность в единиц в направлении оси , протяженность в единиц вдоль оси и единиц вдоль оси .

Вращение системы координат

Что произойдет, если мы повернем саму систему координат на угол в плоскости ?

X Y α α x y y' x' X rot Y rot v

В исходной системе вектор имеет координаты , а в новой (повернутой) системе он имеет координаты , т.е.

Рассмотрим -ю часть вектора , а именно протяженность . По-сути, это указатель на координату самого вектора. А указатель также является вектором.

α x Y rot X rot x cos(α) x sin(α)

Мы можем спроецировать этот указатель (то есть вектор) на оси и . Мы помним из формулы (1) предыдущей статьи, что эти проекции равны и . Итак, мы можем написать:

Таким же образом

Мы не меняли ось , поэтому . Собрав все вместе, мы имеем:

Это означает, что:

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

Синус и косинус двух углов

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

X Y α x y y' x' X rot Y rot v β

Тогда сразу получаем уравнения для синуса и косинуса суммы двух углов:

Матрицы вращения

Давайте вернемся к формуле и перепишем ее в более явной форме:

У нас есть повторяющаяся схема — мы последовательно умножаем координаты , и на определенные коэффициенты в первой, второй и третьей строках, а затем суммируем произведения этих умножений.

Мы можем отдельно перечислить эти коэффициенты для 1-й, 2-й и 3-й строк в квадратных скобках и выразить ту же идею более кратко:

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

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

Для вращения в плоскости на угол мы используем следующую матрицу вращения

— это так называемая матрица вращения в плоскости , т. е. двумерный массив коэффициентов, на которые мы умножаем координаты вектора, чтобы перейти из исходной системы координат в новую (повернутую).

Для обратного преобразования мы меняем на , что дает инвертированную (то есть обратную) матрицу, симметричную оригинальной:

Таким же образом матрицы вращения в плоскостях и имеют вид:

Последовательные вращения

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

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

Затем мы поворачиваем этот вектор на угол во второй плоскости:

Мы можем выразить это еще проще:

Как видите, мы просто умножаем матрицы в нужной последовательности. Здесь первая матрица поворота, согласно , имеет вид:

А вторая матрица поворота, согласно , имеет вид:

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

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

Для этого воспользуемся уравнением (2) из предыдущей статьи. И мы получим новые сферические координаты. Это решает поставленную нами в прошлой статье задачу.

Подведем итоги

Теперь вы знакомы с векторными объектами в декартовых координатах и с матрицами вращения.

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

Шаг 1

Вам надо выразить сферические углы исходной системы координат в декартовы координаты с помощью уравнения (2) из предыдущей статьи. Мы обозначаем декартовы координаты вектора через .

Шаг 2

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

Шаг 3

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