Формула поворота Родрига

Материал из testwiki
Перейти к навигации Перейти к поиску

Формула поворота Родрига — формула, связывающая два вектора с общим началом, один из которых получен поворотом другого на известный угол вокруг оси, проходящей через их общее начало:

R→2−tan⁡(χ/2)[e→×R→2]=R→1+tan⁡(χ/2)[e→×R→1]

где R→1 — исходный вектор, R→2 — результирующий вектор, e→ — единичный вектор оси поворота, χ — угол поворота. Также формула может быть записана в виде:

R→2=(e→⋅R→1)(1−cos⁡χ)e→+(e→×R→1)sin⁡χ+R→1⋅cos⁡χ

Лежит в основе векторной теории конечных поворотов и сложения вращений.Шаблон:Нет АИ Получена О. Родригом в 1840 г.Шаблон:Sfn

Вывод

Без потери общности, направим ось z→ вдоль единичного вектора e→, а вектор R→1 — лежащим в плоскости OXZ, тогда:

R→1x=R→1−R→1z
R→1y=0
R→1z=(e→⋅R→1)e→

Откуда:

R→1x=R→1−(e→⋅R→1)e→

Положим вектор w→, равный:

w→=e→×R→1

Заметим, что:

|w→|=|e→×R→1|=|e→||R→1|sin⁡ϕ =|R→1|sin⁡ϕ
|R→1x|=|R→1|cos⁡(π/2−ϕ)=|R→1|sin⁡ϕ.

Тогда вектор R→2x можно выразить через векторы w→ и R→1x и угол χ:

R→2x=R→1xcos⁡χ+w→sin⁡χ=(R→1−(e→⋅R→1)e→)cos⁡χ+(e→×R→1)sin⁡χ

Результирующий вектор R→2 выражается через векторы R→2x и R→1z:

R→2=R→2x+R→1z=(R→1−(e→⋅R→1)e→)cos⁡χ+(e→×R→1)sin⁡χ+(e→⋅R→1)e→

Приведя подобные, получим формулу поворота Родрига:

R→2=(e→⋅R→1)(1−cos⁡χ)e→+(e→×R→1)sin⁡χ+R→1⋅cos⁡χ

В матричной форме

Векторное умножение на вектор Шаблон:Math можно представить в виде умножения на матрицу Шаблон:Math:

𝐤×𝐯=[(𝐤×𝐯)x(𝐤×𝐯)y(𝐤×𝐯)z]=[kyvz−kzvykzvx−kxvzkxvy−kyvx]=[0−kzkykz0−kx−kykx0][vxvyvz]=𝐊𝐯.

Вектор Шаблон:Math при повороте вокруг единичного вектора Шаблон:Math перейдет в вектор

𝐯rot=𝐯+(sin⁡θ)𝐊𝐯+(1−cos⁡θ)𝐊2𝐯=𝐑𝐯,

где 𝐊(𝐊𝐯)=𝐊2𝐯=𝐤×(𝐤×𝐯).

Таким образом получается, что матрица поворота вокруг единичного вектора Шаблон:Math на угол θ

𝐑=𝐈+(sin⁡θ)𝐊+(1−cos⁡θ)𝐊2.

где

𝐊=[0−kzkykz0−kx−kykx0].

Примечания

Шаблон:Примечания

Литература