Шаблон:Распространение радиоволн ВЧ/Реализация/encompassing aperture t::unify/Алгоритм: различия между версиями
Строка 46: | Строка 46: | ||
\textrm{cos}\left(\frac{\pi}{2} - \frac{\alpha_1 + \alpha_2}{2}\right)\textrm{cos}\left(\frac{\pi}{2}+\frac{\alpha_1 - \alpha_2}{2}\right) \\ | \textrm{cos}\left(\frac{\pi}{2} - \frac{\alpha_1 + \alpha_2}{2}\right)\textrm{cos}\left(\frac{\pi}{2}+\frac{\alpha_1 - \alpha_2}{2}\right) \\ | ||
\textrm{cos}\left(\frac{\pi}{2} - \frac{\alpha_1 + \alpha_2}{2}\right)\textrm{sin}\left(\frac{\pi}{2}+\frac{\alpha_1 - \alpha_2}{2}\right) | \textrm{cos}\left(\frac{\pi}{2} - \frac{\alpha_1 + \alpha_2}{2}\right)\textrm{sin}\left(\frac{\pi}{2}+\frac{\alpha_1 - \alpha_2}{2}\right) | ||
\end{pmatrix} = \textrm{cos}\left(\frac{\pi}{2} - \frac{\alpha_1 + \alpha_2}{2}\right)\begin{pmatrix}\vec{c}_1 & \vec{c}_n\end{pmatrix} | |||
\begin{pmatrix} | |||
-\textrm{sin}\frac{\alpha_1 - \alpha_2}{2} \\ | |||
\textrm{cos}\frac{\alpha_1 - \alpha_2}{2} | |||
\end{pmatrix}</math>. | \end{pmatrix}</math>. | ||
Тогда <math>\vec{c}_{12} = -\frac{\vec{c'}_{12}}{\left|\vec{c'}_{12}\right|}</math>, а <math>\alpha_{12}=\pi - \beta = \frac{\pi}{2}+\frac{\alpha_1 + \alpha_2}{2}</math>. | Пусть <math>\tau=-\textrm{cos}\left(\frac{\pi}{2} - \frac{\alpha_1 + \alpha_2}{2}\right)</math> и | ||
:<math>\vec{c''}_{12} = \begin{pmatrix} | |||
\textrm{sin}\frac{\alpha_1 - \alpha_2}{2} \\ | |||
\textrm{cos}\frac{\alpha_1 - \alpha_2}{2} | |||
\end{pmatrix}</math>. | |||
Тогда <math>\vec{c'}_{12} = -\tau\vec{c''}_{12}</math>. | |||
Отсюда | |||
:<math>\vec{c}_{12} = -\frac{\vec{c'}_{12}}{\left|\vec{c'}_{12}\right|}=\frac{\tau\vec{c''}_{12}}{\left|-\tau\vec{c''}_{12}\right|}=\frac{\vec{c''}_{12}}{\left|\vec{c''}_{12}\right|}</math>, | |||
а ангулярный радиус будет равен | |||
:<math>\alpha_{12}=\pi - \beta = \frac{\pi}{2}+\frac{\alpha_1 + \alpha_2}{2}</math>. | |||
Во '''втором случае''' <math>\vec{c}_1\nparallel\vec\vec{c}_2</math>, однако <math>\vec{c'}_1\|\vec{c'}_2</math>. | Во '''втором случае''' <math>\vec{c}_1\nparallel\vec\vec{c}_2</math>, однако <math>\vec{c'}_1\|\vec{c'}_2</math>. |
Версия 01:03, 30 ноября 2018
Пусть объединяются два сектора сферы, релизуемые классом классом encompassing_aperture_t - и , где - вектор направления на центральную точку -го сектора (возвращаемый методом encompassing_aperture_t::central_point), а - соответствующий ангулярный радиус (возвращаемый методом encompassing_aperture_t::radius).

В результате объединения создается новый сектор
.Вектора
могут быть либо нулевыми либо единичными. Сектор с нулевым вектором направления считается нейтральным по операции объединения, т.е. .Далее рассматривается случай, в котором
.Поскольку направленные отрезки
и исходят из одной точки - центра сферы, оба отрезка принадлежат одной плоскости, причем эта плоскость является диаметральным сечением сферы. Поэтому задача поиска объединяющего сектора, то есть вектора и ангулярного радиуса , становится двумерной.Существует три случая.
Рассмотрим первый случай, когда
. Поскольку длины всех векторов равны единице, , а количество плоскостей, которым одновременно могут принадлежать и бесконечно, вследствие чего количество возможных секторов минимальной площади, объединяющих и , также бесконечно и зависит от того на какой из плоскостей будут принадлежать выбранные и ; и этот выбор будет сводится к выбору диаметральной плоскости, проходящей через .Этот выбор можно сделать, если задать произвольный вектор
, перпендикулярный .В описываемой реализации
- .
Тогда на плоскости, которой одновременно принадлежат
, и , будет однозначно определен вектор , отстоящий на одинаковом угловом расстоянии от векторов и и, поэтому, параллельный вектору центральной точки сектора-объединения.Для нахождения вектора
достаточно выразить его в базисе и осуществить переход к мировой системе координат входной модели. Как видно из рисунка, в указанном базисе вектор имеет координаты- ,
причем
.Тогда в мировых координатах
- .
Пусть
и- .
Тогда
.Отсюда
- ,
а ангулярный радиус будет равен
- .
Во втором случае
, однако .