В предыдущей статье о базовой тригонометрии для астрологов мы вывели формулы для преобразования сферических координат в декартовы. В этой статье мы познакомимся с уравнениями перевода самих сферических координат из одной системы в другую. Это поможет нам решить поставленную ранее задачу перевода эклиптических координат в экваториальные, что необходимо для расчета первичных дирекций.
[toc]
Вектор в декартовых координатах
Наш план работы будет таков. Для начала мы преобразуем сферические координаты небесного объекта в декартовы координаты в той же системе (скажем, в плоскости эклиптики) с помощью уравнения (2) из предыдущей статьи.
Далее мы перейдем в новую систему (например из плоскости эклиптики в плоскость экватора) также в терминах декартовых координат. На последнем шаге мы снова переведм декартовы координаты уже в новой системе обратно в сферические углы. Таким образом мы завершим искомое преобразование одних сферических координат в другие.
Для удобства мы введем понятие вектора в декартовых координатах как указателя на объект в привычной системе координат $\textbf{XYZ}$.
Вектор имеет
- начальную точку с координатами $(0, 0, 0)$
- конечную точку с координатами $(x, y, z)$, которая совпадает с местоположением объекта в пространстве.
Обозначим вектор буквой $\vec{v}$ и запишем его следующем виде:
$$\vec{v} = x \textbf{X} + y \textbf{Y} + z\textbf{Z}$$
В этой нотации мы имеем в виду, что вектор имеет протяженность в $\textbf{X}$ единиц в направлении оси $\textbf{X}$, протяженность в $\textbf{Y}$ единиц вдоль оси $\textbf{Y}$ и $\textbf{Z}$ единиц вдоль оси $\textbf{Z}$ .
Вращение системы координат
Что произойдет, если мы повернем саму систему координат на угол $\alpha$ в плоскости $\textbf{XY}$?
В исходной системе $\textbf{XYZ}$ вектор имеет координаты $(x, y)$, а в новой (повернутой) системе он имеет координаты $(x^\prime, y^\prime, z^\prime) $, т.е.
$$ \vec{v} = x^\prime \textbf X_\text{rot} + y^\prime \textbf Y_\text{rot} + z^\prime \textbf Z_\text{rot} $$
Рассмотрим $\textbf{X}$-ю часть вектора $\vec{v}$, а именно протяженность $x \textbf{X}$. По-сути, это указатель на координату $x$ самого вектора. А указатель также является вектором.
Мы можем спроецировать этот указатель (то есть вектор) на оси $\textbf X_\text{rot}$ и $\textbf Y_\text{rot}$. Мы помним из формулы (1) предыдущей статьи, что эти проекции равны $x \cos\alpha$ и $-x \sin\alpha$. Итак, мы можем написать:
$$ х \textbf{X} = x \cos\alpha~ \textbf X_\text{rot} - x \sin\alpha~ \textbf Y_\text{rot} $$
Таким же образом
$$ y \textbf{Y} = y \sin\alpha~ \textbf X_\text{rot} + y \cos\alpha~ \textbf Y_\text{rot} $$
Мы не меняли ось $\textbf{Z}$, поэтому $z\textbf Z = z\textbf Z_\text{rot}$. Собрав все вместе, мы имеем:
$$ \begin{aligned} \vec{v} &= \left(x \cos\alpha + y \sin\alpha\right) \textbf X_\text{rot} \\ &+ \left( -x \sin\alpha + y\cos\alpha \right) \textbf Y_\text{rot} \\ &+ z\textbf Z_\text{rot}\\ \vec{v} &= x^\prime \textbf X_\text{rot} + y^\prime \textbf Y_\text{rot} +z^\prime\textbf Z_\text{rot} \end{aligned} $$
Это означает, что:
$$ \begin{cases} x^\prime = x\cos\alpha + y \sin\alpha \\ y^\prime = -x \sin\alpha + y\cos\alpha \\ z^\prime = z \end{cases}\tag{1} $$
Для обратного преобразования нам нужно заменить $\alpha$ на $-\alpha$. По-сути, в обратном преобразовании мы поворачиваем вторую систему на такой же угол, но в обратном направлении, чтобы получить исходную систему координат. Это дает нам:
$$ \begin{cases} x = x^\prime\cos\alpha - y^\prime \sin\alpha \\ y = x^\prime \sin\alpha + y^\prime\cos\alpha \\ z = z^\prime \end{cases}\tag{2} $$
Синус и косинус двух углов
Из $(2)$, в частности, следует одно жизненно важное уравнение, которое мы будем регулярно использовать. Обозначим сферическую координату вектора $\vec{v}$ (его долготу) в плоскости $\textbf X_\text{rot} \textbf Y_\text{rot}$ новой системы координат через $\beta$ (см. рисунок 3 ниже), т.е.
$$ \begin{cases} x = \cos(\alpha + \beta) \\ y = \sin(\alpha + \beta) \\ x^\prime = \cos\beta \\ y^\prime = \sin\beta \\ \end{cases} $$
Тогда сразу получаем уравнения для синуса и косинуса суммы двух углов:
Матрицы вращения
Давайте вернемся к формуле $(2)$ и перепишем ее в более явной форме:
У нас есть повторяющаяся схема — мы последовательно умножаем координаты $x$, $y$ и $z$ на определенные коэффициенты в первой, второй и третьей строках, а затем суммируем произведения этих умножений.
Мы можем отдельно перечислить эти коэффициенты для 1-й, 2-й и 3-й строк в квадратных скобках и выразить ту же идею более кратко:
Это более удобное представление этих трех уравнений, и эта компактность облегчит нам жизнь. Мы произносим это так: если мы умножим координаты $x$, $y$ и $z$ на эти коэффициенты, то получим новые координаты вектора в системе координат, повернутой на угол $\alpha$.
Эти коэффициенты обычно называются матрицей вращения, и выражение выше представляет собой умножение координат $(x, y, z)$ на матрицу вращения, что дает новые координаты $(x', y', z')$.
Для вращения в плоскости $\textbf{XY}$ на угол $\alpha$ мы используем следующую матрицу вращения
$$\mathbf{A} = \left[\begin{array} {rrr} \cos\alpha & \sin\alpha & 0 \\ -\sin\alpha & \cos\alpha & 0 \\ 0 & 0 & 1 \end{array}\right]\tag{4} $$
$\mathbf{A}$ — это так называемая матрица вращения в плоскости $\textbf{XY}$, т. е. двумерный массив коэффициентов, на которые мы умножаем координаты вектора, чтобы перейти из исходной системы координат в новую (повернутую).
Для обратного преобразования мы меняем $\alpha$ на $-\alpha$, что дает инвертированную (то есть обратную) матрицу, симметричную оригинальной:
$$\mathbf{A^T} = \left[\begin{array} {rrr} \cos\alpha & -\sin\alpha & 0 \\ \sin\alpha & \cos\alpha & 0 \\ 0 & 0 & 1 \end{array}\right] $$
Таким же образом матрицы вращения в плоскостях $\textbf{XZ}$ и $\textbf{YZ}$ имеют вид:
$$\mathbf{A}_{YZ} = \left[\begin{array} {rrr} 1 & 0 & 0 \\ 0 & \cos\alpha & \sin\alpha \\ 0 & -\sin\alpha & \cos\alpha \end{array}\right] $$
Последовательные вращения
Эта краткая нотация для преобразования декартовых координат через матрицы вращения дает нам значительное преимущество. Теперь мы можем эффективно выполнять несколько последовательных поворотов в разных плоскостях и выражать их с помощью простой формулы.
Предположим, мы хотим повернуть систему координат на угол $\alpha$ в плоскости $\textbf{XY}$, а затем повернуть новую систему координат на угол $\beta$ в плоскости $\textbf X' \textbf Z'$. Сначала мы получаем координаты вектора после вращения на угол $\alpha$:
$$ \left(\begin{array}{c}x'\\y'\\z'\end{array}\right) = \mathbf{A} \times \left(\begin{array}{c}x\\y\\z\end{array}\right) $$
Затем мы поворачиваем этот вектор на угол $\beta$ во второй плоскости:
$$ \left(\begin{array}{c}x''\\y''\\z''\end{array}\right) = \mathbf{B} \times \left(\begin{array}{c}x'\\y'\\z'\end{array}\right) $$
Мы можем выразить это еще проще:
$$ \left(\begin{array}{c}x''\\y''\\z''\end{array}\right) = \mathbf{B} \times \mathbf{A} \times \left(\begin{array}{c}x\\y\\z\end{array}\right) $$
Как видите, мы просто умножаем матрицы в нужной последовательности. Здесь первая матрица поворота, согласно $(4)$, имеет вид:
$$ \mathbf{A} = \left[ \begin{array}{rrr}\cos\alpha & \sin\alpha & 0 \\ -\sin\alpha & \cos\alpha & 0 \\ 0 & 0 & 1\end{array} \right] $$
А вторая матрица поворота, согласно $(5)$, имеет вид:
$$ \mathbf{B} = \left[ \begin{array}{rrr}\cos\beta & 0 & \sin\beta \\ 0 & 1 & 0 \\ -\sin\beta & 0 & \cos\beta \end{array} \right] $$
Как видите, мы можем очень компактно записывать преобразования из одной системы координат в другую.
Вуаля, у нас есть декартовы координаты исходного вектора в новой системе координат. На финальном шаге нам осталось лишь преобразовать новые декартовы координаты в сферические углы (в уже новой, повернутой, системе координат).
Для этого воспользуемся уравнением (2) из предыдущей статьи. И мы получим новые сферические координаты. Это решает поставленную нами в прошлой статье задачу.
Подведем итоги
Теперь вы знакомы с векторными объектами в декартовых координатах и с матрицами вращения.
Вы также знаете, что общий подход к преобразованию одной сферической системы в другую состоит из 3 шагов.
Шаг 1
Вам надо выразить сферические углы исходной системы координат в декартовы координаты с помощью уравнения (2) из предыдущей статьи. Мы обозначаем декартовы координаты вектора через $(x, y, z)$.
Шаг 2
Затем вам надо повернуть систему координат на угол $\alpha$, а затем на $\beta$ вдоль нужных осей с помощью матриц вращения. Вы получите координаты того же вектора, только в рамках новой (повернутой) системы координат:
$$ \left(\begin{array}{c}x''\\y''\\z''\end{array}\right) = \mathbf{B} \times \mathbf{A} \times \left(\begin{array}{c}x\\y\\z\end{array}\right) $$
Шаг 3
Наконец, выразите новые декартовы координаты $(x'', y'', z'')$ в терминах сферические углов с помощью уравнения (2) из предыдущей статьи. Вы завершаете преобразование. Задача решена.