Obrót punktu

Obiekty i przekształcenia geometryczne, opisane za pomocą układu (nie zawsze prostokątnego) współrzędnych.
aussie
Użytkownik
Użytkownik
Posty: 56
Rejestracja: 23 lis 2011, o 19:31
Płeć: Kobieta
Lokalizacja: Gdansk
Podziękował: 11 razy

Obrót punktu

Post autor: aussie »

Witam. Bardzo proszę o pomoc w następującym zadaniu:
Dany jest punkt P oraz odcinek AB w 3d. Znaleźć punkt P' będący obrotem punktu P dookoła odcinka AB o kąt 90 stopni.
Majeskas
Użytkownik
Użytkownik
Posty: 1456
Rejestracja: 14 gru 2007, o 14:36
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 49 razy
Pomógł: 198 razy

Obrót punktu

Post autor: Majeskas »

Mamy tutaj do czynienia z obrotem afinicznym. Możemy sobie sprowadzić sytuację do liniowej.

Trzeba obrócić punkt \(\displaystyle{ P}\) wokół prostej \(\displaystyle{ A+\textup{lin}\left(\overrightarrow{AB}\right)}\). Obróćmy sobie zatem \(\displaystyle{ P_1=P-\vec{A}}\) wokół prostej \(\displaystyle{ \textup{lin}\left(\overrightarrow{AB}\right)}\), a do wyniku dodajmy wektor \(\displaystyle{ \vec A}\). Niech \(\displaystyle{ \varphi\colon\mathbb R^3\to\mathbb R^3}\) będzie takim obrotem. Znajdziemy \(\displaystyle{ \varphi(P_1)}\)

Potrzebujemy znaleźć ortonormalną bazę przestrzeni \(\displaystyle{ \textup{lin}\left( \overrightarrow{AB}\right)^\perp}\), czyli płaszczyznę.

Weźmy dowolną bazę \(\displaystyle{ \mathbb R^3}\) postaci \(\displaystyle{ \mathcal A=\left\{ \overrightarrow{AB},\alpha_1,\alpha_2\right\}}\), znajdziemy bazę ortogonalną \(\displaystyle{ \mathcal A'=\left\{ \overrightarrow{AB},\alpha_1',\alpha_2'\right\}}\) poprzez ortogonalizację
Grama-Schmidta.

\(\displaystyle{ \alpha_1'=\alpha_1- \frac{\left\langle \alpha_1,\overrightarrow{AB}\right\rangle }{\left\langle \overrightarrow{AB},\overrightarrow{AB}\right\rangle }\overrightarrow{AB}}\)

\(\displaystyle{ \alpha_2'=\alpha_2- \frac{\left\langle \alpha_2,\overrightarrow{AB}\right\rangle}{\left\langle \overrightarrow{AB},\overrightarrow{AB}\right\rangle }\overrightarrow{AB}- \frac{\left\langle \alpha_2,\alpha_1'\right\rangle }{\left\langle \alpha_1',\alpha_1'\right\rangle }\alpha_1'}\)

Znormalizujmy znalezione wektory:

\(\displaystyle{ \alpha_1'':= \frac{\alpha_1'}{\lVert\alpha_1'\rVert}}\)

\(\displaystyle{ \alpha_2'':= \frac{\alpha_2'}{\lVert\alpha_2'\rVert}}\)

Wówczas \(\displaystyle{ \mathcal B=\left\{ \alpha_1'',\alpha_2''\right\}}\) jest bazą ortonormalną \(\displaystyle{ \textup{lin}\left( \overrightarrow{AB}\right)^\perp}\).

\(\displaystyle{ \mathcal A'':=\left\{ \overrightarrow{AB},\alpha_1'',\alpha_2''\right\}}\)


\(\displaystyle{ M(\varphi)_{\mathcal{A}''}^{\mathcal{A}''}=\left[ \begin{array}{ccc}\cos (\pi/2)&-\sin(\pi/2)&0\\\sin(\pi/2)&\cos(\pi/2)&0\\0&0&1\end{array} \right]}\)

Teraz znajdujemy: \(\displaystyle{ M(\varphi)_{\textrm{st}}^{\textrm{st}}=M(\textup{id})_{\mathcal{A}''}^{\textrm{st}}\cdot M(\varphi)_{\mathcal{A}''}^{\mathcal{A}''}\cdot M(\textup{id})_{\textrm{st}}^{\mathcal{A}''}}\)

Ostatecznie:

\(\displaystyle{ \varphi(P_1)=M(\varphi)_{\textrm{st}}^{\textrm{st}}\cdot \vec{P_1}^{\textrm{T}}}\)

Obraz punktu \(\displaystyle{ P}\) przy obrocie wokół prostej \(\displaystyle{ A+\textup{lin}\left(\overrightarrow{AB}\right)}\) to \(\displaystyle{ M(\varphi)_{\textrm{st}}^{\textrm{st}}\cdot \left(\vec{P}-\vec{A}\right)^{\textrm{T}}+\vec{A}}\)
aussie
Użytkownik
Użytkownik
Posty: 56
Rejestracja: 23 lis 2011, o 19:31
Płeć: Kobieta
Lokalizacja: Gdansk
Podziękował: 11 razy

Obrót punktu

Post autor: aussie »

Bardzo dziękuję za odpowiedź. Wczoraj jeszcze trochę myślałam nad tym zadaniem i czy dobrym rozwiązaniem byłoby poniższe?:

Wykorzystamy macierz obrotu wokół dowolnej osi lub dowolnej prostej skierowanej przechodzącej przez początek układu:
\(\displaystyle{ \left[\begin{array}{ccc}cos \theta+u _{x} ^{2}(1-cos \theta) &u _{x}u _{y}(1-cos \theta) -u _{z}sin \theta &u _{x}u _{z}(1-cos\theta)+u _{y}sin\theta \\u _{y}u _{x}(1-cos\theta)+u _{z}sin\theta&cos \theta+u _{y} ^{2}(1-cos \theta)&u _{y}u _{z}(1-cos\theta)-u _{x}sin\theta\\u _{z}u _{x}(1-cos\theta)-u _{y}sin\theta&u _{z}u _{y}(1-cos\theta)+u _{x}sin\theta&cos \theta+u _{z} ^{2}(1-cos \theta)\end{array}\right]}\)

gdzie \(\displaystyle{ (u _{x},u _{y},u _{z})}\) to wektor jednostkowy wskazujący kierunek prostej wokół której obracamy.

Co musimy zrobić to przesunąć nasz odcinek do początku układu współrzędnych korzystając z macierzy translacji:
\(\displaystyle{ \left[\begin{array}{cccc}1&0&0&-x\\0&1&0&-y\\0&0&1&-z\\0&0&0&1\end{array}\right]}\)

Następnie wykonać obrót punktu P, w tym celu rozszerzamy macierz obrotu do wymiaru 4x4.

\(\displaystyle{ \left[\begin{array}{cccc}cos \theta+u _{x} ^{2}(1-cos \theta) &u _{x}u _{y}(1-cos \theta) -u _{z}sin \theta &u _{x}u _{z}(1-cos\theta)+u _{y}sin\theta&0 \\u _{y}u _{x}(1-cos\theta)+u _{z}sin\theta&cos \theta+u _{y} ^{2}(1-cos \theta)&u _{y}u _{z}(1-cos\theta)-u _{x}sin\theta&0\\u _{z}u _{x}(1-cos\theta)-u _{y}sin\theta&u _{z}u _{y}(1-cos\theta)+u _{x}sin\theta&cos \theta+u _{z} ^{2}(1-cos \theta)&0\\0&0&0&1\end{array}\right]}\)

Na końcu musimy znowu przesunąć nasz odcinek do jego początkowego położenia korzystając ponownie z macierzy translacji w poniższej formie:
\(\displaystyle{ \left[\begin{array}{cccc}1&0&0&x\\0&1&0&y\\0&0&1&z\\0&0&0&1\end{array}\right]}\)

Ostateczna transformacja to iloczyn powyższych macierzy.

Moje przyjęte dane początkowe:
kąt \(\displaystyle{ \theta=90 ^{o}}\), \(\displaystyle{ A=(3,2,1), B=(6,4,7), P(4,7,9)}\)
i szukamy \(\displaystyle{ P'=(x',y',z')}\)

Obliczamy wektor jednostkowy:
\(\displaystyle{ \vec{u}= \frac{ \vec{AB} }{\left| \vec{AB} \right| }= \frac{\left[ 3,2,6\right] }{ \sqrt{49} }= \frac{\left[ 3,2,6\right] }{7}=\left[ \frac{3}{7}, \frac{2}{7}, \frac{6}{7} \right]}\)

Szukany punkt \(\displaystyle{ P'}\) po podstawieniu danych:

\(\displaystyle{ \left[\begin{array}{c}x'&y'&z'&1\end{array}\right]}\)=\(\displaystyle{ \left[\begin{array}{cccc}1&0&0&-3\\0&1&0&-2\\0&0&1&-1\\0&0&0&1\end{array}\right]\left[\begin{array}{cccc} \frac{9}{49} & \frac{-37}{49} & \frac{32}{49} &0\\ \frac{48}{49} & \frac{4}{49} & \frac{-9}{49} &0\\ \frac{4}{49} & \frac{33}{49} & \frac{36}{49} &0\\0&0&0&1\end{array}\right]\left[\begin{array}{cccc}1&0&0&3\\0&1&0&2\\0&0&1&1\\0&0&0&1\end{array}\right]\left[\begin{array}{c}4&7&9&1\end{array}\right]}\)

Po obliczeniach:
\(\displaystyle{ \left[\begin{array}{c}x'&y'&z'&1\end{array}\right]=\left[\begin{array}{c} \frac{-97}{49} & \frac{184}{49} & \frac{636}{49} &1\end{array}\right]}\)

Czyli nasz szukany punkt \(\displaystyle{ P'=( \frac{-97}{49}, \frac{184}{49}, \frac{636}{49})}\)
ODPOWIEDZ