Архитектурная акустика/Рей-трейсинг: различия между версиями
Перейти к навигации
Перейти к поиску
Ninok2801 (обсуждение | вклад) |
|||
(не показано 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.1.1
И расстояние
Множество поверхностей()
- Если
G.Множество отражающих объектов()
- Для
- Для
- Частота( )
- Зарегистрировать звук ( Интенсивность (Азимут Зенит
[ Ширина полосы частот())
G.Множество плоскостей вывода результатов()
- Для
- Для
- Для
- Для
- Для
- Частота( )
- Позиция()
- Интенсивность(Азимут Зенит )
- Отразить
- коэффициент отражения
- Если
- Для
- Если
- Зарегистрировать
и если не в_тени
G.Множество плоскостей ()
- Если
- Для
- Для
- Если
- Если не В_тени (t,t',G)
- Отразить
- Переход на ш. 1.2.1.1.1.6
- Если не В_тени (t,t',G)
.Множество поверхностей()
- Если
G.Множество отражающих объектов ()
- Для
.Минимальный уровень звука()
- Для
[ Ширина полосы частот())
G.Множество отражающих элементов(Шаг дискретизации)
- Для
G.Множество поверхностей()
- Для
G.Множество отражающих объектов()
- Для
G.Множество первичных источников()
- Для