Распространение радиоволн ВЧ/Реализация/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.
Фактически, это означает, что все углы, образованные всеми возможными парами отрезков от до должны быть меньше Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \pi . Это имеет место, когда Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle V} образовано, например, вершинами одной отражающей поверхности ReflectingObject или контрольными точками одной плоскости вывода результатов PlainControlPointSet. См. также Source::OptimizeRadiationVectors.
Если Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \left|V\right|\equiv 1} , то Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \Omega=\left\langle\frac{\vec{v}_0-\vec{P}}{\left|\vec{v}_0-\vec{P}\right|}, 0\right\rangle} . Далее по тексту Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \left|V\right|\ge 2} .
Создадим множество Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle V' = \bigcup\limits_{i=0}^{n-1}\left(\vec{v}_i-\vec{P}\right)} и выберем пару Невозможно разобрать выражение (Ошибка преобразования. Сервер («https://wikimedia.org/api/rest_») сообщил: «Cannot get mml. Server problem.»): {\displaystyle {\vec {v'}}_{i},{\vec {v'}}_{j}\in V'} тех точек, отрезки из Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \vec{P}} до которых образуют между собой наибольший угол Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle 2\alpha} .
Если угол равен нулю, то Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \Omega=\left\langle\frac{\vec{v'}_i}{\left|\vec{v'}_i\right|}, 0\right\rangle} .
Поэтому далее по тексту рассматривается оставшийся случай, когда Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \left|V\right|\ge 2} , Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle 0<2\alpha<\pi} и Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle 0<\alpha<\frac{\pi}{2}} .
Тогда задача нахождения Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \Omega} будет сводиться к нахождению биссектрисы между Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \vec{v'}_i} и Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \vec{v'}_j} , лежащий на ней вектор Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \vec{c}} единичной длины и угол Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \alpha = \frac{1}{2}\arccos\frac{\vec{v'}_i\cdot\vec{v'}_j}{\left|\vec{v'}_i\right|\cdot\left|\vec{v'}_j\right|}} .
Для нахождения вектора Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \vec{c}} соединим прямой точки Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \vec{v'}_i} и Невозможно разобрать выражение (Ошибка преобразования. Сервер («https://wikimedia.org/api/rest_») сообщил: «Cannot get mml. Server problem.»): {\displaystyle {\vec {v'}}_{j}} и обозначим как Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \tau\vec{c}} вектор, с которым ассоциирован направленный отрезок, имеющий начало в точке , направленный вдоль биссектриссы между Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \vec{v'}_i} и Невозможно разобрать выражение (Ошибка преобразования. Сервер («https://wikimedia.org/api/rest_») сообщил: «Cannot get mml. Server problem.»): {\displaystyle {\vec {v'}}_{j}} до точки пересечения с прямой. Обозначим как Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \vec{v}_c} вектор, с которым ассоциирован направленный отрезок с началом в конце отрезка Невозможно разобрать выражение (Ошибка преобразования. Сервер («https://wikimedia.org/api/rest_») сообщил: «Cannot get mml. Server problem.»): {\displaystyle {\vec {v'}}_{i}} и концом в точке пересечения. То есть
- Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \vec{c}=\vec{v}_i+\vec{v}_c} .
Согласно теореме о биссектрисе эта точка делит отрезок между Невозможно разобрать выражение (Ошибка преобразования. Сервер («https://wikimedia.org/api/rest_») сообщил: «Cannot get mml. Server problem.»): {\displaystyle {\vec {v'}}_{i}} и Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \vec{v'}_j} в пропорции, равной отношению длин Невозможно разобрать выражение (Ошибка преобразования. Сервер («https://wikimedia.org/api/rest_») сообщил: «Cannot get mml. Server problem.»): {\displaystyle \left|{\vec {v'}}_{i}\right|} и Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \left|\vec{v'}_j\right|} . Поэтому
- Невозможно разобрать выражение (Ошибка преобразования. Сервер («https://wikimedia.org/api/rest_») сообщил: «Cannot get mml. Server problem.»): {\displaystyle {\vec {v}}_{c}=\left|{\vec {v}}_{c}\right|{\frac {{\vec {v'}}_{j}-{\vec {v'}}_{i}}{\left|{\vec {v'}}_{j}-{\vec {v'}}_{i}\right|}}} ;
- Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \frac{\left|\vec{v}_c\right|}{\left|\vec{v'}_j-\vec{v'}_i\right|-\left|\vec{v}_c\right|}=\frac{\left|\vec{v}_i\right|}{\left|\vec{v}_j\right|}\Rightarrow\vec{v}_c=\frac{\left|\vec{v}_i\right|\cdot\left|\vec{v}_j-\vec{v}_i\right|}{\left|\vec{v}_i\right| + \left|\vec{v}_j\right|}} .
Поэтому
- Невозможно разобрать выражение (Ошибка преобразования. Сервер («https://wikimedia.org/api/rest_») сообщил: «Cannot get mml. Server problem.»): {\displaystyle \tau {\vec {c}}={\frac {1}{\left|{\vec {v}}_{i}\right|\cdot \left|{\vec {v}}_{j}\right|}}\left(\left|{\vec {v}}_{j}\right|{\vec {v}}_{i}+\left|{\vec {v}}_{i}\right|{\vec {v}}_{j}\right)} .
Пусть Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \tau'=\frac{\tau}{\left|\vec{v}_i\right|\cdot\left|\vec{v}_j\right|}} и
- Невозможно разобрать выражение (Ошибка преобразования. Сервер («https://wikimedia.org/api/rest_») сообщил: «Cannot get mml. Server problem.»): {\displaystyle {\vec {c'}}={\begin{pmatrix}{\vec {v}}_{i}&{\vec {v}}_{j}\end{pmatrix}}{\begin{pmatrix}\left|{\vec {v}}_{j}\right|\\\left|{\vec {v}}_{i}\right|\end{pmatrix}}} .
Тогда Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \vec{c}=\frac{\tau'\vec{c'}}{\tau'\left|\vec{c'}\right|}=\frac{\vec{c'}}{\left|\vec{c'}\right|}} и Невозможно разобрать выражение (Ошибка преобразования. Сервер («https://wikimedia.org/api/rest_») сообщил: «Cannot get mml. Server problem.»): {\displaystyle \alpha ={\frac {1}{2}}\arccos {\frac {{\vec {v'}}_{i}\cdot {\vec {v'}}_{j}}{\left|{\vec {v'}}_{i}\right|\cdot \left|{\vec {v'}}_{j}\right|}}} .