Macierze obrotu

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 19463 razy

Temat ten był już poniekąd omawiany w dziale Matematyka → Wektory → Obrót wektora o kąt, z tego też powodu samo wyprowadzenie oraz słuszność wzorów tutaj użytych do stworzenia macierzy obrotu nie będzie tutaj omawiana po raz kolejny. Tych więc, którzy są zainteresowani szczegółami związanymi z wyprowadzeniem odsyłam do wcześniej wspomnianej strony.

Macierz obrotu w przestrzeni 2W

Istnieje taka grupa szczególnych macierzy, zwanych macierzami obrotu Mo, która umożliwia poprzez mnożenie macierzowe z wektorem V tego samego wymiaru n uzyskanie nowego wektora V', który został obrócony względem początku układu współrzędnych o zadany kąt α.

Macierz obrotów Mo dla danego kąta α w przestrzeni 2W przyjmuje postać następującą:

Obrócenie wektora, tak jak to wcześniej wspomniałem można wykonać poprzez zwykłe mnożenie macierzowe w następujący sposób:

Na poniższym rysunku można zobaczyć przykładowy obrót figury płaskiej względem początku układu współrzędnych.

Animacja obrotu przykładowego obiektu o zadany kąt.
Rys. 1
Animacja obrotu przykładowego obiektu o zadany kąt.

Poszczególne klatki animacji wygenerowane zostały w programie wxMaxima za pomocą następującego kodu:

x1:2; y1:1; xo: 2; yo: 0; da: 5 * %pi / 180; v: matrix([x1],[y1]); ik: matrix([xo], [yo]) * 1 / sqrt(xo^2+yo^2); jk: matrix([-ik[2][1]],[ik[1][1]]); obj:matrix([0.5,1.5,1.5,1,1,0.5,0.5],[0.5,0.5,1,1,2,2,0.5]); Mk: matrix([ik[1][1], jk[1][1]],[ik[2][1], jk[2][1]]); obj2: float(Mk . obj); l: float(sqrt(v2[1][1]^2+v2[2][1]^2)-sqrt(v[1][1]^2+v[2][1]^2)); Mrot: float(matrix([cos(da), -sin(da)],[sin(da),cos(da)])); i:0; for i: 0 thru 71 do( Mk: matrix([ik[1][1], jk[1][1]],[ik[2][1], jk[2][1]]), obj2: float(Mk . obj), ik: Mrot . ik, jk: Mrot . jk, plot2d([[discrete, obj2[1], obj2[2]], [discrete, obj[1], obj[2]]],[x,-3,3],[y,-3,3],[gnuplot_term, "png size 500,500"], [gnuplot_out_file, printf(false,"C:\\obr2 ~f.png",i)],[legend,printf(false,"obrocenie o kat ~f",da*i/%pi * 180),"obracany"]) )$

Animacja poskładana w programie Gimp

Tę samą operację można wykonać względem dowolnego punktu, wystarczy tylko nieco zmodyfikować wzór [2]:

Istnieją szczególne rodzaje macierzy obrotów Mo, do których należą obroty o krotność kąta 90°. Tak więc dla obrotu o 90° macierz obrotów Mo ma następującą postać:

Dla 270° a tym samym dla -90° macierz obrotu ma postać następującą:

I nareszcie, macierz obrotu Mo o 180°:

Macierze obrotu w przestrzeni 3W

Obroty trójwymiarowe, które również zostały omówione na stronie Matematyka → Wektory → Obrót wektora o kąt, można wykonywać w zasadzie na podstawie tego samego wzoru [1] z lekką modyfikacją i tylko względem danej osi układu współrzędnych.

Macierz obrotu dla osi z w układzie 3W:

Na poniższej animacji można zobaczyć przykładowy obrót obiektu względem osi z.

Animacja obrotu przykładowego obiektu względem osi z.
Rys. 2
Animacja obrotu przykładowego obiektu względem osi z.

Poszczególne klatki animacji wygenerowane w programie wxMaxima

Animacja poskładana w programie Gimp

Macierz obrotu dla osi y w układzie 3W:

Macierz obrotu dla osi x w układzie 3W:

Składanie macierzy obrotu w układach 3W

Istnieje również możliwość składania obrotów względem np. osi x, y i osi z. Taka operacja będzie miała następującą przykładową postać dla przykładowego obrotu względem osi x i z:

Cechy macierzy obrotu Mo

Każda macierz obrotu Mo jest macierzą ortogonalną i jako taka spełnia określone warunki:

1) Wartość wyznacznika macierzy obrotu Mo zawiera się w przedziale |M0|∈{-1; 1}

2) Transpozycja macierzy obrotu MoT jest równa macierzy Mo-1:

3) Iloczyn macierzy obrotu Mo z jej transpozycją MoT daje w wyniku macierz jednostkową:

Propozycje książek
tytuł: Matematyka w uczeniu maszynowym autor: Marc Peter Deisenroth, A. Aldo Faisal, Cheng Soon Ong

Tytuł:

Matematyka w uczeniu maszynowym

Autor:

Marc Peter Deisenroth, A. Aldo Faisal, Cheng Soon Ong

tytuł: Matematyka dyskretna dla praktyków. Algorytmy i uczenie maszynowe w Pythonie autor: Ryan T. White, Archana Tikayat Ray

Tytuł:

Matematyka dyskretna dla praktyków. Algorytmy i uczenie maszynowe w Pythonie

Autor:

Ryan T. White, Archana Tikayat Ray

tytuł: Matematyka w Pythonie. Algebra, statystyka, analiza matematyczna i inne dziedziny autor: Amit Saha

Tytuł:

Matematyka w Pythonie. Algebra, statystyka, analiza matematyczna i inne dziedziny

Autor:

Amit Saha

tytuł: Matematyka dla menedżerów. Wydanie II autor: Michael C. Thomsett

Tytuł:

Matematyka dla menedżerów. Wydanie II

Autor:

Michael C. Thomsett

tytuł: Matematyka Poradnik encyklopedyczny autor: I.N. Bronsztejn, K.A. Siemiendiajew

Tytuł:

Matematyka Poradnik encyklopedyczny

Autor:

I.N. Bronsztejn, K.A. Siemiendiajew

tytuł: Matematyka finansowa autor: Jacek Jakubowski, Andrzej Palczewski, Marek Rutkowski, Łukasz Stettner

Tytuł:

Matematyka finansowa

Autor:

Jacek Jakubowski, Andrzej Palczewski, Marek Rutkowski, Łukasz Stettner

tytuł: Proste jak pi Matematyka to bułka z masłem autor: Liz Strachan

Tytuł:

Proste jak pi Matematyka to bułka z masłem

Autor:

Liz Strachan

tytuł: O twierdzeniach i hipotezach. Matematyka według Delty autor: Witold Sadowski, Wiktor Bartol

Tytuł:

O twierdzeniach i hipotezach. Matematyka według Delty

Autor:

Witold Sadowski, Wiktor Bartol

tytuł: Matematyka dla biologów autor: Dariusz Wrzosek

Tytuł:

Matematyka dla biologów

Autor:

Dariusz Wrzosek

tytuł: Matematyka dla programistów Java autor: Jacek Piechota

Tytuł:

Matematyka dla programistów Java

Autor:

Jacek Piechota

W związku z tym, że firma Helion nie wywiązuje się z swoich zobowiązań naliczania prowizji za każdą zakupioną książkę a kontakt z ową frmą jest nie możliwy autor strony zmuszony został do zablokowania linkowania książek. Za wszelkie niedogodności z tym związane z góry przepraszam i obiecuję włączenie linkowania gdy tylko sprawa zostanie wyjaśniona