Re: и вновь прога...
- From
- Viktor Karev (2:5080/1003)
- To
- Vovanius Uryvaeff
- Date
- 2002-11-20T15:41:41Z
- Area
- RU.ALGORITHMS
From: Viktor Karev <termar@narod.ru>
Reply-To: termar@narod.ru
Приветствия!
Vovanius Uryvaeff wrote:
> VK> Наиболее подходящий для данной задачи метод - трасировки лучей.
> VK> Выпускаешь из начальной точки во всех направлениях лучи и
> VK> фиксируешь фронт фолны через dt.
> dt можно посчитать как min(S/v) - где S- расстояние до ближайшего препятствия.
Нет, dt определяется разностью скоростей в разных регионах,
размерами регионов и еще разными эмпирическими соображениями.
> VK> Если два луча пересеклись - из
> VK> точки пересечения выпускаешь один луч по среднему направлению.
> Если они столкнулись - оба луча удалим.
Нельзя. куда девается фронт волны в этой точке?
> VK> Если слишком разошлись - добавляешь еще луч, чтобы плотность
> VK> лучей оставалась в некоторых пределах.
>
> В прошлом своем письме я вроде начал эту мысль. Теперь продолжу:
> Имеет смысл считать сразу весь фронт волны.
> Вокруг точки, пока поблизости нет границ, фронт имеет форму окружности:
> xx+yy=vt
А если точка лежит на границе двух сред?
> Когда эта окружность коснется вершины, из вершины пойдет еще один круговой
> фронт.
Окружность может коснуться границы двух сред не обязательно в
вершине.
> А фронт после преломления будет иметь вид, описываемый уравнениями
> неизвестного порядка.
Так и не надо вычислять эти уравнения. Фронт получаем численно.
> А можно эти две идеи скомбинировать, и аппроксимировать фронт многоугольником,
> в вершинах которых известны направления движения лучей.
Это то же самое.
> От предложенной тобой идеи отличается тем, что учитывается еще и возможность
> "столкновений" между отдельными лучами.
Отличается? Читай выше, что я писал про столкновения лучей.
Виктор.
--- ifmail v.2.15dev5
* Origin: USURT's FidoNET<->Internet Gate (news://news.c (2:5080/1003@fidonet)