Дуже добре, розберемо цей важливий момент детально. Знаходження зв'язку між кутами — це саме те, що залишається важливим на великих відстанях. ### 1. Як знайти зв'язок між кутами? (Математичний підхід) Ключ полягає в тому, що одиничний вектор (\hat{\mathbf{r}}) у сферичній системі координат пов'язаний з його кутами ((\theta, \phi)) наступним чином: [ \hat{\mathbf{r}} = \begin{pmatrix} \sin\theta \cos\phi \ \sin\theta \sin\phi \ \cos\theta \end{pmatrix} ] Якщо ми хочемо перейти від системи 1 ((r, \theta, \phi)) до поверненої системи 2 ((r', \theta', \phi')), ми знаємо, що той самий точці у просторі відповідають два одиничних вектори: (\hat{\mathbf{r}}) (в системі 1) і (\hat{\mathbf{r}}') (в системі 2). Вони пов'язані матрицею повороту (\mathbf{R}): [ \hat{\mathbf{r}}' = \mathbf{R} \cdot \hat{\mathbf{r}} ] Алгоритм знаходження нових кутів ((\theta', \phi')) через старі ((\theta, \phi)) та матрицю повороту (\mathbf{R}) такий: 1. Записати (\hat{\mathbf{r}}) у системі 1: (\hat{\mathbf{r}} = (\sin\theta \cos\phi, \sin\theta \sin\phi, \cos\theta)^T). 2. Обчислити (\hat{\mathbf{r}}') за формулою: (\hat{\mathbf{r}}' = \mathbf{R} \cdot \hat{\mathbf{r}}). Це дасть нам компоненти нового вектора в системі 2: (\hat{\mathbf{r}}' = (x', y', z')^T). 3. Знайти нові кути за визначенням сферичних координат: * Кут (\theta') вимірюється від осі Z' системи 2. Він визначається через z'-компоненту: [ \theta' = \arccos(z') ] (За умови (0 \le \theta' \le \pi)). * Кут (\phi') вимірюється в площині X'Y' від осі X'. Він визначається через x' та y' компоненти: [ \phi' = \operatorname{atan2}(y', x') ] Функція atan2 (арктангенс двох аргументів) коректно визначає квадрант кута. Отже, формально зв'язок задається цими двома формулами: [ \theta' = \arccos([\mathbf{R} \cdot \hat{\mathbf{r}}]_z) ] [ \phi' = \operatorname{atan2}([\mathbf{R} \cdot \hat{\mathbf{r}}]_y, [\mathbf{R} \cdot \hat{\mathbf{r}}]_x) ] Явний вигляд функцій (\theta'(\theta, \phi)) і (\phi'(\theta, \phi)) буде залежати від конкретного вигляду матриці (\mathbf{R}). --- ### 2. Що таке кути Ейлера? Це спосіб описати будь-який поворот у тривимірному просторі за допомогою трьох послідовних поворотів навколо певних осей. Існує кілька конвенцій (наборів осей). Розглянемо найпоширенішу — кути Ейлера ZYZ. Будь-який поворот можна представити як послідовність трьох незалежних поворотів: 1. Поворот навколо початкової осі Z на кут (\alpha) (Прецесія): * Обертаємо системи координат навколо спільної осі Z. * Після цього повороту вісь X переходить у вісь X₁, вісь Y — у Y₁. Вісь Z залишається незмінною. 2. Поворот навколо нової осі Y₁ на кут (\beta) (Нутація): * Тепер обертаємо систему навколо проміжної осі Y₁. * Цей поворот змінює напрямок осі Z. Після нього вісь Z займає своє кінцеве положення Z'. Вісь X₁ переходить у X₂. 3. Поворот навколо нової осі Z' на кут (\gamma) (Власне обертання): * Останній поворот навколо нової осі Z' (яка вже співпадає з віссю Z' цільової системи). * Він остаточно вирівнює осі X та Y. Кути ((\alpha, \beta, \gamma)) і є кутами Ейлера (ZYZ). Чому вони зручні? * Вони мають інтуїтивний геометричний зміст (особливо в задачах про обертання симетричних тіл). * За цими кутами можна легко побудувати загальну матрицю повороту (\mathbf{R}). #### Матриця повороту через кути Ейлера (ZYZ) Матриця повороту є добутком трьох матриць елементарних поворотів: [ \mathbf{R}(\alpha, \beta, \gamma) = \mathbf{R}_z(\gamma) \cdot \mathbf{R}_y(\beta) \cdot \mathbf{R}_z(\alpha) ] де: * (\mathbf{R}_z(\alpha)) — матриця повороту навколо осі z на кут (\alpha). * (\mathbf{R}_y(\beta)) — матриця повороту навколо осі y на кут (\beta). * (\mathbf{R}_z(\gamma)) — матриця повороту навколо осі z на кут (\gamma). Явний вигляд матриці (\mathbf{R}(\alpha, \beta, \gamma)): [ \mathbf{R} = \begin{pmatrix} \cos\gamma \cos\beta \cos\alpha - \sin\gamma \sin\alpha & \cos\gamma \cos\beta \sin\alpha + \sin\gamma \cos\alpha & -\cos\gamma \sin\beta \ -\sin\gamma \cos\beta \cos\alpha - \cos\gamma \sin\alpha & -\sin\gamma \cos\beta \sin\alpha + \cos\gamma \cos\alpha & \sin\gamma \sin\beta \ \sin\beta \cos\alpha & \sin\beta \sin\alpha & \cos\beta \end{pmatrix} ] Саме цю матрицю (\mathbf{R}) ми підставляємо в алгоритм вище, щоб отримати зв'язок (\theta'(\theta, \phi)) і (\phi'(\theta, \phi)). --- ### Приклад для розуміння Умова: Нехай система 2 повернута відносно системи 1 лише навколо осі Y на кут (\beta). Це окремий випадок кутів Ейлера, де (\alpha = 0, \gamma = 0). 1. Матриця повороту навколо осі Y: [ \mathbf{R}_y(\beta) = \begin{pmatrix} \cos\beta & 0 & \sin\beta \ 0 & 1 & 0 \ -\sin\beta & 0 & \cos\beta \end{pmatrix} ] 2. Обчислюємо (\hat{\mathbf{r}}'): [ \hat{\mathbf{r}}' = \mathbf{R}_y(\beta) \cdot \hat{\mathbf{r}} = \begin{pmatrix} \cos\beta & 0 & \sin\beta \ 0 & 1 & 0 \ -\sin\beta & 0 & \cos\beta \end{pmatrix} \begin{pmatrix} \sin\theta \cos\phi \ \sin\theta \sin\phi \ \cos\theta \end{pmatrix} = \begin{pmatrix} \cos\beta \sin\theta \cos\phi + \sin\beta \cos\theta \ \sin\theta \sin\phi \ -\sin\beta \sin\theta \cos\phi + \cos\beta \cos\theta \end{pmatrix} ] Отже, (x' = \cos\beta \sin\theta \cos\phi + \sin\beta \cos\theta), (y' = \sin\theta \sin\phi), (z' = -\sin\beta \sin\theta \cos\phi + \cos\beta \cos\theta). 3. Знаходимо нові кути: * (\theta' = \arccos(z') = \arccos( \cos\beta \cos\theta - \sin\beta \sin\theta \cos\phi )) * (\phi' = \operatorname{atan2}(y', x') = \operatorname{atan2}( \sin\theta \sin\phi, \cos\beta \sin\theta \cos\phi + \sin\beta \cos\theta )) Це і є явний зв'язок між кутами для цього конкретного простого повороту. Як бачите, навіть для такого простого випадку формули не дуже прості, але вони точні й дозволяють однозначно обчислити нові координати. Підсумок: Щоб знайти зв'язок кутів, потрібно знати матрицю повороту між системами (наприклад, задану через кути Ейлера), і застосувати її до одиничного радіус-вектора, а потім перерахувати отримані компоненти назад у сферичні кути.
-
Notifications
You must be signed in to change notification settings - Fork 0
EugeneRyas/file_html
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published