Распространение радиоволн ВЧ/Реализация/ControlPointSet::EncompassingAperture
encompassing_aperture_t EncompassingAperture(const spacial_vector<double>& ptAsObservedFrom) const; //1
encompassing_aperture_t EncompassingAperture() const; //2
Для заданной точки строит сектор encompassing_aperture_t сферы с единичным радиусом, описанной вокруг этой точки, так, что все точки текущего множества контрольных точек при проекции на сферу будут лежать внутри сектора.
- Построение ведется для заданной точки.
- То же, но построение ведется для начала мировой системы координат.
[in] | ptAsObservedFrom | Точка, вокруг которой строится сфера. |
Source::OptimizeRadiationVectors | Строит сектор сферы encompassing_aperture_t, область которого ограничивает множество, реализуемое системой классов radiation_set_t, элементов поля, излучаемого источником. |
ReflectingObject::EncompassingAperture | Для заданной точки строит сектор encompassing_aperture_t сферы с единичным радиусом, описанной вокруг этой точки, так, что отражающий объект ReflectingObject при проекции на сферу будет лежать внутри сектора. |
Пусть encompassing_aperture_t. Проекции всех точек из на сферу должны принадлежать .
- непустое входное множество геометрических точек, и - некоторая заданная точка, вокруг которой требуется построить сектор сферы с единичным радиусом, где - вектор, ассоциированный с направленным отрезком от до центральной точки сектора на поверхности сферы, и - ангулярный радиус сектора, как это реализуется классомПусть также все точки из unify.
лежат по одну сторону от , т.е. не находится геометрически в облаке, образованном . Если это не так, то множество должно быть разбито на подмножества точек, лежащих по одну сторону от , а затем сектора, образованные применением описываемого алгоритма над и подмножествами, должны быть объединены с помощью функцииФактически, это означает, что все углы, образованные всеми возможными парами отрезков от ReflectingObject или контрольными точками одной плоскости вывода результатов PlainControlPointSet. См. также Source::OptimizeRadiationVectors.
до должны быть меньше . Это имеет место, когда образовано, например, вершинами одной отражающей поверхности
Если
, то . Далее по тексту .Создадим множество
и выберем пару тех точек, отрезки из до которых образуют между собой наибольший угол .Если угол равен нулю, то
.Поэтому далее по тексту рассматривается оставшийся случай, когда
, и .Тогда задача нахождения
будет сводиться к нахождению биссектрисы между и , лежащий на ней вектор единичной длины и угол .Для нахождения вектора
соединим прямой точки и и обозначим как вектор, с которым ассоциирован направленный отрезок, имеющий начало в точке , направленный вдоль биссектриссы между и до точки пересечения с прямой. Обозначим как вектор, с которым ассоциирован направленный отрезок с началом в конце отрезка и концом в точке пересечения. То есть- .
Согласно теореме о биссектрисе эта точка делит отрезок между и в пропорции, равной отношению длин и . Поэтому
- ;
- .
Поэтому
- .
Пусть
и- .
Тогда
и .