Архитектурная акустика/Рей-трейсинг: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
 
(не показано 13 промежуточных версий 2 участников)
Строка 4: Строка 4:


=Алгоритм=
=Алгоритм=
 
#Для <math>\forall ~ s_i \in </math> G.Множество первичных источников()
##Для <math>\forall ~ \rho_i \in </math> G.Множество плоскостей вывода результатов()
###Для <math>\forall ~ p \in \rho_i</math>
####<math>D \leftarrow p - s_i.</math>Позиция()
####Для <math>\forall ~ r \in </math> G.Множество отражающих объектов()
#####Для <math>\forall ~ f \in r.</math>Множество поверхностей()
######Если <math>\exists t=\vec{D}\cap f</math> И расстояние <math>(s_i,t)< |\vec{D}|</math>
#######Перейти на шаг 1.1.1
####Для <math>\forall ~ k \in </math>[<math>0,s_i.</math>Ширина полосы частот())
#####<math>\omega \leftarrow s_i.</math>Частота(<math>k</math>)
#####<math>\rho_i.</math> Зарегистрировать звук (<math>s_i.</math> Интенсивность (Азимут <math>\vec{D},</math> Зенит<math>\vec{D},\omega),0,\omega)</math>
##Для <math>\forall ~ r \in </math> G.Множество отражающих объектов()
###Для <math>\forall ~ f \in r.</math> G.Множество поверхностей()
####Для <math>\forall ~ t \in f.</math> G.Множество отражающих элементов(Шаг дискретизации)
#####Для <math>\forall ~ k \in </math>[<math>0,s_i.</math>Ширина полосы частот())
######<math>\omega \leftarrow s_i.</math>Частота(<math>k</math>)
######<math>\vec{D} =\vec{t}-s_i.</math>Позиция()
######<math>I\leftarrow s_i.</math>Интенсивность(Азимут<math> \vec{D},</math> Зенит<math>\vec{D},\omega</math>)
######<math>\vec{D'} \leftarrow</math>Отразить<math>\vec{D'},t</math>
######<math>I' \leftarrow (1-f.</math>коэффициент отражения<math>(\omega))\cdot I</math>
######Если <math>I' > G</math><tt>.Минимальный уровень звука()</tt>
#######Для <math>\forall ~ \rho_i \in </math> G.Множество плоскостей ()
########Если <math>\exists p=\alpha\vec{D'}\cap \rho_i, 0 < \alpha < \infty</math> и если не в_тени<math>(t,p,G)</math>
######### <math> \rho_i.</math> Зарегистрировать<math>( \frac{I'}{|t-p|^2},p,\omega)</math>
#######Для <math>\forall ~ r' \in </math> G.Множество отражающих объектов ()
########Для <math>\forall ~ f' \in r'</math> .Множество поверхностей()
#########Если <math>\exists t'=\beta\vec{D'}\cap f', 0 < \beta < \infty</math>
##########Если не В_тени (t,t',G)
###########<math>D' \leftarrow </math> Отразить  <math>(D',f')</math>
########### <math>I' \leftarrow \frac{I'(1-f'.absorptance(\omega))}{|t-t'|^2}</math>
###########<math>t \leftarrow t'</math>
###########Переход на ш. 1.2.1.1.1.6


=Свойства алгоритма=
=Свойства алгоритма=

Текущая версия на 16:12, 6 декабря 2016

Архитектурная акустика\Рей-трейсинг

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

Алгоритм

  1. Для G.Множество первичных источников()
    1. Для G.Множество плоскостей вывода результатов()
      1. Для
        1. Позиция()
        2. Для G.Множество отражающих объектов()
          1. Для Множество поверхностей()
            1. Если И расстояние Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): (s_i,t)< |\vec{D}|
              1. Перейти на шаг 1.1.1
        3. Для Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \forall ~ k \in [Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): 0,s_i. Ширина полосы частот())
          1. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \omega \leftarrow s_i. Частота(Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): k )
          2. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \rho_i. Зарегистрировать звук (Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): s_i. Интенсивность (Азимут Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \vec{D}, ЗенитНевозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \vec{D},\omega),0,\omega)
    2. Для Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \forall ~ r \in G.Множество отражающих объектов()
      1. Для Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \forall ~ f \in r. G.Множество поверхностей()
        1. Для G.Множество отражающих элементов(Шаг дискретизации)
          1. Для Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \forall ~ k \in [Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): 0,s_i. Ширина полосы частот())
            1. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \omega \leftarrow s_i. Частота(Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): k )
            2. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \vec{D} =\vec{t}-s_i. Позиция()
            3. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): I\leftarrow s_i. Интенсивность(АзимутНевозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \vec{D}, ЗенитНевозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \vec{D},\omega )
            4. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \vec{D'} \leftarrow ОтразитьНевозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \vec{D'},t
            5. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): I' \leftarrow (1-f. коэффициент отраженияНевозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): (\omega))\cdot I
            6. Если Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): I' > G .Минимальный уровень звука()
              1. Для Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \forall ~ \rho_i \in G.Множество плоскостей ()
                1. Если Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \exists p=\alpha\vec{D'}\cap \rho_i, 0 < \alpha < \infty и если не в_тениНевозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): (t,p,G)
                  1. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \rho_i. ЗарегистрироватьНевозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): ( \frac{I'}{|t-p|^2},p,\omega)
              2. Для Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \forall ~ r' \in G.Множество отражающих объектов ()
                1. Для Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \forall ~ f' \in r' .Множество поверхностей()
                  1. Если Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): \exists t'=\beta\vec{D'}\cap f', 0 < \beta < \infty
                    1. Если не В_тени (t,t',G)
                      1. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): D' \leftarrow Отразить Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): (D',f')
                      2. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): I' \leftarrow \frac{I'(1-f'.absorptance(\omega))}{|t-t'|^2}
                      3. Невозможно разобрать выражение (MathML с запасными SVG или PNG (рекомендуется для современных браузеров и инструментов повышения доступности): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): t \leftarrow t'
                      4. Переход на ш. 1.2.1.1.1.6

Свойства алгоритма