sincoscircleЯ тут размышлял, как можно было бы использовать векторы для записи преобразования координат, и вот о чём подумал. Декартовы координаты, конечно, необходимы для получения окончательной формулы преобразования. Но «пролазят» они в задачу не только поэтому. Они незримо присутствуют в самой сферической системе. И это я хочу показать.
Допустим, мы выбрали в пространстве начало координат
![$O$ $O$](https://dxdy-02.korotkov.co.uk/f/9/a/f/9afe6a256a9817c76b579e6f5db9a57882.png)
(пока что это единственный произвольный выбор), и теперь любую точку
![$A$ $A$](https://dxdy-02.korotkov.co.uk/f/5/3/d/53d147e7f3fe6e47ee05b88b166bd3f682.png)
можем представить радиус-вектором
![$\mathbf r=\vec{OA}$ $\mathbf r=\vec{OA}$](https://dxdy-02.korotkov.co.uk/f/d/d/d/dddf0b36083be4ee2789b70d3be7fc7f82.png)
. Совершенно не хочется выбирать какой-то базис, тем более декартов... Попробуем для данного вектора
![$\mathbf r$ $\mathbf r$](https://dxdy-03.korotkov.co.uk/f/a/8/2/a82c32a69ccd4b4fe55aa66f12d7aaf382.png)
записать его сферические координаты. Сначала всё идёт хорошо:
![$r=\sqrt{\mathbf r \cdot \mathbf r}$ $r=\sqrt{\mathbf r \cdot \mathbf r}$](https://dxdy-01.korotkov.co.uk/f/c/8/7/c877017569bfb0c14f88372f203fbc1282.png)
. Но уже на координате
![$\theta$ $\theta$](https://dxdy-03.korotkov.co.uk/f/2/7/e/27e556cf3caa0673ac49a8f0de3c73ca82.png)
обнаруживается, что необходимо какое-то выделенное направление, от которого мы будем отсчитывать угол. Так как у нас подход векторный, зададим направление вектором, назовём его
![$\mathbf e_z$ $\mathbf e_z$](https://dxdy-03.korotkov.co.uk/f/6/c/2/6c28a00435e55586c5e661df816a58b782.png)
. Он может быть любой ненулевой длины, но для определённости пусть будет единичным. С его помощью запишем:
![$\theta=$ $\theta=$](https://dxdy-03.korotkov.co.uk/f/e/c/a/eca282402d5e5a4b2eec9e24b5cf58e482.png)
угол между векторами
![$\mathbf e_z$ $\mathbf e_z$](https://dxdy-03.korotkov.co.uk/f/6/c/2/6c28a00435e55586c5e661df816a58b782.png)
и
![$\mathbf r$ $\mathbf r$](https://dxdy-03.korotkov.co.uk/f/a/8/2/a82c32a69ccd4b4fe55aa66f12d7aaf382.png)
, или
![$\theta=\arccos \dfrac{\mathbf e_z\cdot \mathbf r}{r}$ $\theta=\arccos \dfrac{\mathbf e_z\cdot \mathbf r}{r}$](https://dxdy-03.korotkov.co.uk/f/e/d/0/ed0c2637a1eda9586244db2ab110037c82.png)
Теперь надо определить
![$\varphi$ $\varphi$](https://dxdy-01.korotkov.co.uk/f/4/1/7/417a5301693b60807fa658e5ef9f953582.png)
. Мы можем найти проекцию
![$\mathbf r$ $\mathbf r$](https://dxdy-03.korotkov.co.uk/f/a/8/2/a82c32a69ccd4b4fe55aa66f12d7aaf382.png)
на плоскость
![$\alpha$ $\alpha$](https://dxdy-01.korotkov.co.uk/f/c/7/4/c745b9b57c145ec5577b82542b2df54682.png)
, перпендикулярную
![$\mathbf e_z$ $\mathbf e_z$](https://dxdy-03.korotkov.co.uk/f/6/c/2/6c28a00435e55586c5e661df816a58b782.png)
:
![$\mathbf r_\alpha=\mathbf r-\mathbf e_z(\mathbf e_z \cdot \mathbf r)$ $\mathbf r_\alpha=\mathbf r-\mathbf e_z(\mathbf e_z \cdot \mathbf r)$](https://dxdy-02.korotkov.co.uk/f/d/f/a/dfa958089c8498b694d024e67c46e7a382.png)
Помимо проекции, нужен ещё один произвольный (ненулевой) вектор, лежащий в той же плоскости
![$\alpha$ $\alpha$](https://dxdy-01.korotkov.co.uk/f/c/7/4/c745b9b57c145ec5577b82542b2df54682.png)
, от которого мы будем отсчитывать угол
![$\varphi$ $\varphi$](https://dxdy-01.korotkov.co.uk/f/4/1/7/417a5301693b60807fa658e5ef9f953582.png)
до проекции
![$\mathbf r_\alpha$ $\mathbf r_\alpha$](https://dxdy-01.korotkov.co.uk/f/0/5/e/05e272f178d589110bbab4f80a4c244182.png)
. Можно назвать его как угодно, но Вы уже догадались, что я его назову
![$\mathbf e_x$ $\mathbf e_x$](https://dxdy-01.korotkov.co.uk/f/8/2/c/82ccdcb1bbed6482966ba18528f972b382.png)
, и для определённости он будет единичным. И он перпендикулярен
![$\mathbf e_z$ $\mathbf e_z$](https://dxdy-03.korotkov.co.uk/f/6/c/2/6c28a00435e55586c5e661df816a58b782.png)
, так как лежит в
![$\alpha$ $\alpha$](https://dxdy-01.korotkov.co.uk/f/c/7/4/c745b9b57c145ec5577b82542b2df54682.png)
. Итак,
![$\varphi=$ $\varphi=$](https://dxdy-01.korotkov.co.uk/f/c/4/e/c4e3fac93fa4812e400486ab62e663ce82.png)
угол между векторами
![$\mathbf e_x$ $\mathbf e_x$](https://dxdy-01.korotkov.co.uk/f/8/2/c/82ccdcb1bbed6482966ba18528f972b382.png)
и
![$\mathbf r_\alpha$ $\mathbf r_\alpha$](https://dxdy-01.korotkov.co.uk/f/0/5/e/05e272f178d589110bbab4f80a4c244182.png)
Далее оказывается, что для вычисления
![$\varphi$ $\varphi$](https://dxdy-01.korotkov.co.uk/f/4/1/7/417a5301693b60807fa658e5ef9f953582.png)
удобно ввести вектор
![$\mathbf e_y=\mathbf e_z\times\mathbf e_x$ $\mathbf e_y=\mathbf e_z\times\mathbf e_x$](https://dxdy-04.korotkov.co.uk/f/7/2/f/72fdc5167b86cb6b755550ddcb1957e882.png)
, который по определению перпендикулярен уже введённым
![$\mathbf e_x, \mathbf e_z$ $\mathbf e_x, \mathbf e_z$](https://dxdy-03.korotkov.co.uk/f/e/8/c/e8c785678d86d3033fb51ccdc4ded8c782.png)
и имеет единичную длину. Удобно потому, что
![$\varphi$ $\varphi$](https://dxdy-01.korotkov.co.uk/f/4/1/7/417a5301693b60807fa658e5ef9f953582.png)
выражается через
![$\mathbf e_x\cdot \mathbf r$ $\mathbf e_x\cdot \mathbf r$](https://dxdy-02.korotkov.co.uk/f/1/9/3/1930a78eeec21df1f73390ff6da6866182.png)
и
![$\mathbf e_y \cdot \mathbf r$ $\mathbf e_y \cdot \mathbf r$](https://dxdy-03.korotkov.co.uk/f/6/b/2/6b2fd36b0f0acc28958c17582626ff9e82.png)
с помощью функции
![$\operatorname{atan2}$ $\operatorname{atan2}$](https://dxdy-04.korotkov.co.uk/f/7/3/3/7339759b98210c41c1164788063f9f7182.png)
(что это такое и чем это лучше просто арктангенса, лучше всех может объяснить
arseniiv):
![$\varphi=\operatorname{atan2}\;(\mathbf e_y \cdot \mathbf r,\; \mathbf e_x \cdot \mathbf r)$ $\varphi=\operatorname{atan2}\;(\mathbf e_y \cdot \mathbf r,\; \mathbf e_x \cdot \mathbf r)$](https://dxdy-03.korotkov.co.uk/f/2/6/6/2665206540720039b536531cbf7bf16782.png)
Таким образом, у нас получился ортонормированный базис
![$(\mathbf e_x, \mathbf e_y, \mathbf e_z)$ $(\mathbf e_x, \mathbf e_y, \mathbf e_z)$](https://dxdy-03.korotkov.co.uk/f/e/a/c/eacf7e8c6ad6381fc8bac3ee6767064582.png)
, хотя мы совершенно не стремились к декартовым координатам. Эти векторы появились исходя из построения сферических координат.
И в самом конце обнаруживается, что вспомогательные скалярные произведения (проекции
![$\mathbf r$ $\mathbf r$](https://dxdy-03.korotkov.co.uk/f/a/8/2/a82c32a69ccd4b4fe55aa66f12d7aaf382.png)
на базисные векторы)
![$\mathbf e_x\cdot \mathbf r \quad\quad \mathbf e_y\cdot \mathbf r \quad\quad \mathbf e_z\cdot \mathbf r$ $\mathbf e_x\cdot \mathbf r \quad\quad \mathbf e_y\cdot \mathbf r \quad\quad \mathbf e_z\cdot \mathbf r$](https://dxdy-01.korotkov.co.uk/f/0/8/4/084c51840bc6da97c6e870555554239782.png)
— вещь гораздо более удобная при преобразованиях координат (в силу линейности), чем сами сферические координаты
![$r, \theta, \varphi$ $r, \theta, \varphi$](https://dxdy-03.korotkov.co.uk/f/e/e/5/ee5840752c7a1d3c8855992df322a0b182.png)
.