Русская Википедия:Формула поворота Родрига
Формула поворота Родрига — формула, связывающая два вектора с общим началом, один из которых получен поворотом другого на известный угол вокруг оси, проходящей через их общее начало:
- <math> \vec{R}_2 - \tan(\chi/2) [\vec{e} \times \vec{R}_2] = \vec{R}_1 + \tan(\chi/2) [\vec{e} \times \vec{R}_1] </math>
где <math>\vec{R}_1</math> — исходный вектор, <math>\vec{R}_2</math> — результирующий вектор, <math>\vec{e}</math> — единичный вектор оси поворота, <math>\chi</math> — угол поворота. Также формула может быть записана в виде:
- <math>\vec{R}_2 = (\vec{e} \cdot \vec{R}_1)(1-\cos\chi) \vec{e} + (\vec{e} \times \vec{R}_1)\sin\chi + \vec{R}_1 \cdot \cos \chi </math>
Лежит в основе векторной теории конечных поворотов и сложения вращений.Шаблон:Нет АИ Получена О. Родригом в 1840 г.Шаблон:Sfn
Вывод
Без потери общности, направим ось <math>\vec{z}</math> вдоль единичного вектора <math>\vec{e}</math>, а вектор <math>\vec{R}_1</math> — лежащим в плоскости OXZ, тогда:
- <math> \vec{R}_{1x} = \vec{R}_1 - \vec{R}_{1z} </math>
- <math> \vec{R}_{1y} = 0 </math>
- <math> \vec{R}_{1z} = (\vec{e} \cdot \vec{R}_1) \vec{e} </math>
Откуда:
- <math> \vec{R}_{1x} = \vec{R}_1 - (\vec{e} \cdot \vec{R}_1) \vec{e} </math>
Положим вектор <math>\vec{w}</math>, равный:
- <math>\vec{w} = \vec{e}\times\vec{R}_1</math>
Заметим, что:
- <math>|\vec{w}| = |\vec{e} \times \vec{R}_1| = |\vec{e}| \, |\vec{R}_1| \sin \phi \ = |\vec{R}_1| \sin \phi </math>
- <math>|\vec{R}_{1x}| = |\vec{R}_1| \cos(\pi/2-\phi) = |\vec{R}_1| \sin \phi. </math>
Тогда вектор <math>\vec{R}_{2x}</math> можно выразить через векторы <math>\vec{w}</math> и <math>\vec{R}_{1x}</math> и угол <math>\chi</math>:
- <math>\vec{R}_{2x} = \vec{R}_{1x}\cos\chi + \vec{w}\sin\chi = (\vec{R}_1 - (\vec{e} \cdot \vec{R}_1) \vec{e})\cos\chi + (\vec{e} \times \vec{R}_1)\sin\chi</math>
Результирующий вектор <math>\vec{R}_2</math> выражается через векторы <math>\vec{R}_{2x}</math> и <math>\vec{R}_{1z}</math>:
- <math>\vec{R}_2 = \vec{R}_{2x} + \vec{R}_{1z} = (\vec{R}_1 - (\vec{e} \cdot \vec{R}_1) \vec{e})\cos\chi + (\vec{e} \times \vec{R}_1)\sin\chi + (\vec{e} \cdot \vec{R}_1) \vec{e}</math>
Приведя подобные, получим формулу поворота Родрига:
- <math>\vec{R}_2 = (\vec{e} \cdot \vec{R}_1)(1-\cos\chi) \vec{e} + (\vec{e} \times \vec{R}_1)\sin\chi + \vec{R}_1 \cdot \cos \chi </math>
В матричной форме
Векторное умножение на вектор Шаблон:Math можно представить в виде умножения на матрицу Шаблон:Math:
- <math>\mathbf{k}\times\mathbf{v} = \begin{bmatrix} (\mathbf{k}\times\mathbf{v})_x \\ (\mathbf{k}\times\mathbf{v})_y \\ (\mathbf{k}\times\mathbf{v})_z \end{bmatrix} = \begin{bmatrix} k_y v_z - k_z v_y \\ k_z v_x - k_x v_z \\ k_x v_y - k_y v_x \end{bmatrix} = \begin{bmatrix} 0 & -k_z & k_y \\ k_z & 0 & -k_x \\ -k_y & k_x & 0 \end{bmatrix} \begin{bmatrix} v_x \\ v_y \\ v_z \end{bmatrix} = \mathbf{K}\mathbf{v}\,. </math>
Вектор Шаблон:Math при повороте вокруг единичного вектора Шаблон:Math перейдет в вектор
- <math>\mathbf{v}_{\mathrm{rot}} = \mathbf{v} + (\sin\theta) \mathbf{K}\mathbf{v} + (1-\cos\theta)\mathbf{K}^2\mathbf{v} = \mathbf{R}\mathbf{v} \,,</math>
где <math>\mathbf{K}(\mathbf{K}\mathbf{v}) = \mathbf{K}^2\mathbf{v} = \mathbf{k}\times(\mathbf{k}\times\mathbf{v}) \,. </math>
Таким образом получается, что матрица поворота вокруг единичного вектора Шаблон:Math на угол <math>\theta</math>
- <math> \mathbf{R} = \mathbf{I} + (\sin\theta) \mathbf{K} + (1-\cos\theta)\mathbf{K}^2 ~.</math>
где
- <math>\mathbf{K}=
\left[\begin{array}{ccc} 0 & -k_z & k_y \\ k_z & 0 & -k_x \\ -k_y & k_x & 0 \end{array}\right]~. </math>
Примечания
Литература
- Шаблон:Книга — С. 101—103.
- Шаблон:Статья