Шаблон:Распространение радиоволн ВЧ/Реализация/encompassing aperture t::unify/Алгоритм: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
Строка 14: Строка 14:


Пусть далее <math>\cos \gamma=\frac{\vec{c}_1\cdot\vec{c}_2}{\left|\vec{c}_1\right|\cdot\left|\vec{c}_2\right|}</math>, где <math>\gamma</math> - угол между <math>\vec{c}_1</math> и <math>\vec{c}_2</math>.
Пусть далее <math>\cos \gamma=\frac{\vec{c}_1\cdot\vec{c}_2}{\left|\vec{c}_1\right|\cdot\left|\vec{c}_2\right|}</math>, где <math>\gamma</math> - угол между <math>\vec{c}_1</math> и <math>\vec{c}_2</math>.
Два особых случая:
:<math>\Omega_1\subseteq\Omega_2\Leftrightarrow\gamma+\alpha_1\leq\alpha_2</math> и
:<math>\Omega_2\subseteq\Omega_1\Leftrightarrow\gamma+\alpha_2\leq\alpha_1</math>.
Поэтому:
:<math>\gamma+\alpha_1\leq\alpha_2\Rightarrow\Omega_{12}\equiv\Omega_2</math>, иначе
:<math>\gamma+\alpha_2\leq\alpha_1\Rightarrow\Omega_{12}\equiv\Omega_1</math>.
Далее по тексту предполагается, что <math>\Omega_1\nsubseteq\Omega_2\land\Omega_2\nsubseteq\Omega_1</math>. Следовательно <math>\gamma\ne0</math>.


Существует три случая.
Существует три случая.
Строка 69: Строка 79:


Во '''втором случае''' <math>\vec{c}_1\nparallel\vec{c}_2</math>, однако <math>\vec{c'}_1\|\vec{c'}_2</math> (то есть <math>\alpha_1 + \gamma + \alpha_2 \equiv \pi</math>).
Во '''втором случае''' <math>\vec{c}_1\nparallel\vec{c}_2</math>, однако <math>\vec{c'}_1\|\vec{c'}_2</math> (то есть <math>\alpha_1 + \gamma + \alpha_2 \equiv \pi</math>).
Вследствие того, что <math>\vec{c'}_1\|\vec{c'}_2</math>,
:<math>0<\alpha_1,\alpha_2<\frac{\pi}{2}</math> и
:<math>0<\alpha_1+\alpha_2<\pi</math>.
Действительно, если бы <math>\alpha_1\equiv 0\Rightarrow\alpha_2=\pi-\alpha_1=\pi\Rightarrow\Omega_1\subset\Omega_2</math>, что противоречило бы ограничению <math>\Omega_1\nsubseteq\Omega_2</math>, которое обосновано выше.
Далее, <math>\alpha_1\ge\frac{\pi}{2}\Rightarrow\pi-\gamma-\alpha_2\ge\frac{\pi}{2}\Rightarrow\frac{\pi}{2}\ge\gamma+\alpha_2\Rightarrow\alpha_1\ge\gamma+\alpha_2\Rightarrow\Omega_2\subseteq\Omega_1</math>. ''Противоречие'' ограничению, приведенному выше.
Аналогично доказывается ограничение <math>0<\alpha_2<\frac{\pi}{2}</math>.


[[Файл:encompassing_aperture_t_c1s_par_c2s.svg|thumb|
[[Файл:encompassing_aperture_t_c1s_par_c2s.svg|thumb|

Версия 18:04, 1 декабря 2018

Пусть объединяются два сектора сферы, релизуемые классом классом encompassing_aperture_t - и , где - вектор направления на центральную точку -го сектора (возвращаемый методом encompassing_aperture_t::central_point), а - соответствующий ангулярный радиус (возвращаемый методом encompassing_aperture_t::radius).

В результате объединения создается новый сектор .

Вектора могут быть либо нулевыми либо единичными. Сектор с нулевым вектором направления считается нейтральным по операции объединения, т.е. .

Далее рассматривается случай, в котором .

Поскольку направленные отрезки и исходят из одной точки - центра сферы, оба отрезка принадлежат одной плоскости, причем эта плоскость является диаметральным сечением сферы. Поэтому задача поиска объединяющего сектора, то есть вектора и ангулярного радиуса , становится двумерной.

Диаметральное сечение сферы, которому принадлежат вектора и . Если , то вектор , задающий направление на центральную точку объединяющего сектора, будет являться нормализованной суммой векторов и , если и противоположен этой сумме, если .

Пусть далее , где - угол между и .

Два особых случая:

и
.

Поэтому:

, иначе
.

Далее по тексту предполагается, что . Следовательно .

Существует три случая.

Объединение секторов, у которых (первый случай).

Рассмотрим первый случай, когда (то есть ). Поскольку длины всех векторов равны единице, , а количество плоскостей, которым одновременно могут принадлежать и бесконечно, вследствие чего количество возможных секторов минимальной площади, объединяющих и , также бесконечно и зависит от того на какой из плоскостей будут принадлежать выбранные и ; и этот выбор будет сводится к выбору диаметральной плоскости, проходящей через .

Этот выбор можно сделать, если задать произвольный вектор , перпендикулярный .

В описываемой реализации

.

Тогда на плоскости, которой одновременно принадлежат , и , будет однозначно определен вектор , отстоящий на одинаковом угловом расстоянии от векторов и и, поэтому, параллельный вектору центральной точки сектора-объединения.

Для нахождения вектора достаточно выразить его в базисе и осуществить переход к мировой системе координат входной модели. Как видно из рисунка, в указанном базисе вектор имеет координаты

,

причем .

Тогда в мировых координатах

.

Пусть и .

Тогда .

Отсюда

,

а ангулярный радиус будет равен

.

Во втором случае , однако (то есть ).

Вследствие того, что ,

и
.

Действительно, если бы , что противоречило бы ограничению , которое обосновано выше.

Далее, . Противоречие ограничению, приведенному выше.

Аналогично доказывается ограничение .


Объединение секторов, у которых (второй случай).

Решение задачи объединения сводится к поиску вектрра , перпендикулярного ), лежащего в плоскости и , имеющего острый угол одновременно с и с и нормализованного.

Поскольку вектора и линейно-независимы, их можно использовать в качестве базиса для поиска вектора, сонаправленного с , следующим образом.

Опустим перпендикуляр от конца одного из векторов, например , на вектор , перперндикулярный и образующий острый угол с . Обозначим вектор, связанный с направленным отрезком, который исходит от центра сферы к точке пересечения и проведенного перпендикуляра, как . Такой вектор очевидно будет сонаправлен с , а его длина будет равна

;
.

Обозначим как и соответственно проекции вектора на и а равно координаты вектора в базисе . Из теоремы синусов следует, что

.

Тогда в базисе вектор будет равен:

.

Пусть , и .

Таким образом, во втором случае , .