|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Sergiy Kanilo 2:5020/400 09 May 2003 19:21:09 To : Turosv Alexey Subject : Re: 3D интерполяция -------------------------------------------------------------------------------- "Turosv Alexey" <trusov@nm.ru> wrote in message news:MPG.1920e15fdecd3e9898969a@inetbase... > Интересует алгоритм трехмерного гридирования (gridding). > Т.е. имеется набор N точек (x,y,z,F), требуется построить 3-хмерную > матрицу значений F при заданном размере ячейки (dx,dy,dz). > > Hасколько я понимаю, самый простой метод - алгоритм "inverse distance > weighting", но в постановке "в лоб" (перебор в каждом узле всех точек и, > соответственно, расчет расстояний), работает крайне медленно. > Как его можно оптимизировать? я использовал проход по множеству точек и от каждой точки добавлял F/(r+e), 1/(r+e), r - расстояние от точки до узла сетки, e>0 - малое число, в узлы сетки для которых r < R (от 3 до 7 ячеек) потом брал отношение суммарной взвешенной функции и суммаpного веса скорость пропорциональна N*R^2 можно проходить в несколько итераций - сначала для маленьких радиусов, а потом для больших, и больших ... узлы в которых суммарный вес достиг некоторого предела считаются расчитанными и выбрасываются из рассмотрения при проходах для больших R второй возможный вариант ускорения - построение трехмерной сетки (возможно более крупной чем требуемая) и построение вспомогательных списков исходных точек, принадлежащих ячейкам этой сетки Cheers, Serge --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/657711c5aab9.html, оценка из 5, голосов 10
|