Шаблон:Распространение радиоволн ВЧ/Реализация/EncompassingAperture/Алгоритм

Материал из CAMaaS preliminary wiki
Версия от 01:50, 3 декабря 2018; Андрей Чусов (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

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

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

Фактически, это означает, что все углы, образованные всеми возможными парами отрезков от до должны быть меньше . Это имеет место, когда образовано, например, вершинами одной отражающей поверхности ReflectingObject или контрольными точками одной плоскости вывода результатов PlainControlPointSet. См. также Source::OptimizeRadiationVectors.

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

Если , то . Далее по тексту .

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

Если угол равен нулю, то .

Поэтому далее по тексту рассматривается оставшийся случай, когда , и .

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

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

.

Согласно теореме о биссектрисе эта точка делит отрезок между и в пропорции, равной отношению длин и . Поэтому

;
.

Поэтому

.

Пусть и

.

Тогда и .