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

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
Строка 18: Строка 18:
Объединение секторов, у которых <math>\vec{c}_1\|\vec{c}_2</math>.|400px]]
Объединение секторов, у которых <math>\vec{c}_1\|\vec{c}_2</math>.|400px]]


Рассмотрим случай, когда <math>\vec{c}_1\|\vec{c}_2</math>. Поскольку длины всех векторов равны единице, <math>\vec{c}_2=-\vec{c}_1</math>, а количество плоскостей, которым одновременно могут принадлежать <math>\vec{c}_1</math> и <math>\vec{c}_2</math> бесконечно, вследствие чего количество возможных секторов минимальной площади, объединяющих <math>\Omega_1</math> и <math>\Omega_2</math>, также бесконечно и зависит от того на какой из плоскостей будут принадлежать ''выбранные'' <math>\vec{c'}_1</math> и <math>\vec{c'}_2</math>; и этот выбор будет сводится к выбору диаметральной плоскости, проходящей через <math>\vec{c}_1</math>.
Рассмотрим '''первый случай''', когда <math>\vec{c}_1\|\vec{c}_2</math>. Поскольку длины всех векторов равны единице, <math>\vec{c}_2=-\vec{c}_1</math>, а количество плоскостей, которым одновременно могут принадлежать <math>\vec{c}_1</math> и <math>\vec{c}_2</math> бесконечно, вследствие чего количество возможных секторов минимальной площади, объединяющих <math>\Omega_1</math> и <math>\Omega_2</math>, также бесконечно и зависит от того на какой из плоскостей будут принадлежать ''выбранные'' <math>\vec{c'}_1</math> и <math>\vec{c'}_2</math>; и этот выбор будет сводится к выбору диаметральной плоскости, проходящей через <math>\vec{c}_1</math>.


Этот выбор можно сделать, если задать произвольный вектор <math>\vec{c}_n</math>, перпендикулярный <math>\vec{c}_1</math>.
Этот выбор можно сделать, если задать произвольный вектор <math>\vec{c}_n</math>, перпендикулярный <math>\vec{c}_1</math>.
Строка 50: Строка 50:
Тогда <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>\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>\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>.

Версия 23:03, 29 ноября 2018

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

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

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

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

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

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

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

Объединение секторов, у которых .

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

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

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

.

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

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

,

причем .

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

.

Тогда , а .

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