Macierz Obrotu Wokół Dowolnej Osi o Dowolny Kąt w Przestrzeni 3D

Obrót punktu lub wektora wokół dowolnej osi w przestrzeni 3D

Dany jest punkt P o współrzędnych P=(P_x,P_y,P_z). Wykonujemy obrót tego punktu wokół dowolnej osi zorientowanej tak jak wektor \vec{n}=[a,b,c]. Wektor ten jest wektorem jednostkowym, tzn |\vec{n}|=1. Oś obrotu przechodzi przez początek układu współrzędnych. Obrót wykonamy o kąt skierowany \varphi. Aby dokonać takiego obrotu trzeba wykonać następujące mnożenie.

    \[\mathbf{P}^{\prime} = \mathbf{M} \cdot \mathbf{P},\]

gdzie punkt P zapiszemy na potrzeby rachunku macierzowego w postaci takiej \mathbf{P} = \begin{bmatrix} P_x \\ P_y \\P_z \end{bmatrix}, wektor \vec{n} zapiszemy podobnie jako \mathbf{n}=\begin{bmatrix} a \\ b \\ c \end{bmatrix}. Natomiast macierz \mathbf{M} ma następującą postać.

    \[\mathbf{M} = \begin{bmatrix} a^2(1-\cos \varphi) + \cos \varphi &                    ab(1-\cos \varphi) - c\sin \varphi &                    ac(1-\cos \varphi) + b\sin \varphi \\                   ab(1-\cos \varphi) + c\sin \varphi &                    b^2(1-\cos \varphi) + \cos \varphi &                    bc(1-\cos \varphi) - a\sin \varphi \\                    ac(1-\cos \varphi) - b\sin \varphi &                    bc(1-\cos \varphi) + a\sin \varphi &                   c^2(1-\cos \varphi) + \cos \varphi\end{bmatrix}\]

Można to także zapisać skrótowo.

    \[\mathbf{M} = \mathbf{n} \mathbf{n}^T(1-\cos \varphi) + \mathbf{I}\cos \varphi +\begin{bmatrix} 0 & -c & b \\ c & 0 & -a \\ -b & a & 0  \end{bmatrix}\sin \varphi\]

Obejrzyj w wersji wideo poniżej.

Be Sociable, Share!

Comments

comments

One thought on “Macierz Obrotu Wokół Dowolnej Osi o Dowolny Kąt w Przestrzeni 3D

  1. Mikołaj Kuziuk

    Panie Mateuszu, we wzorze na tą macierz jest błąd. Daję Panu do myślenia, aby Pan sam go znalazł.
    Pozdrawiam Mikołaj

Dodaj komentarz

Twój adres email nie zostanie opublikowany.