Опубликован: 20.10.2007 | Доступ: свободный | Студентов: 4580 / 1391 | Оценка: 4.38 / 3.99 | Длительность: 12:07:00
ISBN: 978-5-94774-654-9
Специальности: Программист
Лекция 3:

Геометрические преобразования

Переход в другую систему координат

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

Две системы координат в пространстве

Рис. 3.9. Две системы координат в пространстве

Пусть единичные орты первой системы координат обозначаются \overrightarrow{i},\overrightarrow{j},\overrightarrow{k}, а оси координат - OX, OY, OZ. Введем еще одну систему координат, единичные орты которой обозначим \overrightarrow{e}_1,\overrightarrow{e}_2,\overrightarrow{e}_3, а оси координат - O'X', O'Y', O'Z'. Эта система имеет свое начало координат и свои направления осей. Считаем, что в обеих системах координат орты образуют левую тройку (рис. 3.9).

Сначала рассмотрим ситуацию, когда точка O' совпадает с точкой O. Векторы \overrightarrow{e}_1,\overrightarrow{e}_2,\overrightarrow{e}_3 можно задать в первой системе координат, разложив их по векторам \overrightarrow{i},\overrightarrow{j},\overrightarrow{k}:

\left.
\begin{aligned}
\overrightarrow{e}_1=e_x^1\overrightarrow{i}+e_y^1\overrightarrow{j}+e_z^1\overrightarrow{k} \\
\overrightarrow{e}_2=e_x^2\overrightarrow{i}+e_y^2\overrightarrow{j}+e_z^2\overrightarrow{k} \\
\overrightarrow{e}_3=e_x^3\overrightarrow{i}+e_y^3\overrightarrow{j}+e_z^3\overrightarrow{k} 
\end{aligned}
\right\}.

Если в первой системе точка \overrightarrow{M} имеет координаты (x,y,z), а во второй системе - (x',y',z'), то, очевидно,

x'\overrightarrow{e}_1+y'\overrightarrow{e}_2+z'\overrightarrow{e}_2=x\overrightarrow{i}+y\overrightarrow{j}+z\overrightarrow{k}.

Умножая скалярно это соотношение на векторы \overrightarrow{e}_1,\overrightarrow{e}_2,\overrightarrow{e}_3, получим связь между значениями координат в разных системах:

\left.
\begin{aligned}
x'=e_x^1 x+ e_y^1 y +e_z^1 z \\
y'=e_x^2 x+ e_y^2 y +e_z^2 z \\
z'=e_x^3 x+ e_y^3 y +e_z^3 z
\end{aligned}
\right\}.

Эти соотношения можно записать в матричном виде

\begin{pmatrix}
x' // y' //z'
\end{pmatrix}
=
\begin{pmatrix}
e_x^1 & e_y^1  & e_z^1 //
e_x^2 & e_y^2  & e_z^2 //
e_x^3 & e_y^3  & e_z^3
\end{pmatrix}
\cdot
\begin{pmatrix}
x // y //z
\end{pmatrix}, ( 3.18)
или в векторной записи
\overrightarrow{M}'=A\cdot\overrightarrow{M}.

Предположим, что вторая система координат получена из первой путем поворота на угол \varphi относительно оси OY. Тогда

\overrightarrow{e}_1=R_y(\varphi)\cdot
\begin{pmatrix}
1 \\ 0 \\ 0
\end{pmatrix}=
\begin{pmatrix}
\cos\varphi \\ 0  \\ -\sin\varphi
\end{pmatrix}, \quad
\overrightarrow{e}_2=R_y(\varphi)\cdot
\begin{pmatrix}
0 \\ 1 \\ 0
\end{pmatrix}=
\begin{pmatrix}
0 \\ 1 \\ 0
\end{pmatrix}, \quad\\
\overrightarrow{e}_3=R_y(\varphi)\cdot
\begin{pmatrix}
0 \\ 0 \\ 1
\end{pmatrix}=
\begin{pmatrix}
\sin\varphi \\ 0 \\ \cos\varphi
\end{pmatrix},
следовательно
A=
\begin{pmatrix}
\cos\varphi & 0 & -\sin\varphi \\
0 & 1 & 0 \\
\sin\varphi & 0 & \cos\varphi
\end{pmatrix}
=R_y(-\varphi)=R_y^{-1}(\varphi).

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

Если новая система координат получена из старой путем сдвига на вектор \overrightarrow{l}=(l_x,l_y,l_z), то очевидно, что новые координаты точки задаются формулами

x'=x-l_x, \quad y'=y-l_y, \quad z'=z-l_z.

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

\overrightarrow{M}'=A\cdot(\overrightarrow{M}'-\overrightarrow{l}). ( 3.12)

Сабина Бахриддинова
Сабина Бахриддинова
Дмитрий Трефилов
Дмитрий Трефилов