Obrót wokół punktu (na płaszczyźnie)


Obracanie wokół punktu w przestrzeni dwuwymiarowej.


pokaż/ukryj opis

Weźmy punkt o współrzędnych (x,y). Obrazem tego punktu w obrocie wokół początku układu współrzędnych będzie punkt o współrzędnych (x',y').

\[ x' = x\cos{\theta} - y \sin{\theta} \] \[ y' = y\cos{\theta} + x \sin{\theta} \]

Gdzie \( \theta \) jest kątem obrotu

W notacji macierzowej można to zapisać jako:

\[ \left( \begin{array}{c} x' \\ y' \end{array} \right) = \left( \begin{array}{cc} \cos{\theta} & -\sin{\theta} \\ \sin{\theta} & \cos{\theta} \end{array} \right) \left( \begin{array}{c} x \\ y \end{array} \right) \]

Sprawdź, rozważając punkt na osi x. Po obrocie o 90°, odcięta będzie wynosiła zero, a rzędna będzie równa odciętej punktu wyjściowego (x',y') = (0, x), co jest puktem leżącym na osi y, jak tego można było się spodziewać.

Jeśli chcemy obrócić punkt wokół innego punktu niż początek układu współrzędnych, musimy najpierw dokonać translacji układu, aby środek obrotu był w punkcie początkowym. Następnie wykonujemy obrót. I na koniec, translacja o wektor przeciwny. Jeśli więc środek obrotu to (10,10), a wyjściowy punkt to (20, 10), to współrzędne (x, y), które można podstawić do powyższego równania, byłyby następujące (20-10, 10-10), tj. (10, 0). Następnie, po obliczeniu (x',y') trzeba go przesunąć o wektor przeciwny [10,10], aby uzyskać ostateczną odpowiedź (x'+10,y'+10).

Wypróbuj to na powyższym demo. Suwakiem można zmienić kąt obrotu, a przeciągając i upuszczając, położenie zarówno punktu przekształcanego (czerwony), jak i środka obrotu (czarny), aby zobaczyć jak to wpływa na położenie obrazu (różowy).

Autorzy