Имеется набор точек в пространстве (геодезическая съемка). Требуется построить горизонтали — линии равных высот. Подскажите, где можно найти ответ.
И еще — задача выбора: помогите найти источник, который подскажет, какой оптимальный алгоритм поможет найти координаты точки, если щелкнуть по ней мышкой (точек очень много).
Заранее благодарен.
Здравствуйте, mukhomor, Вы писали:
1. строим поверхность (триангуляция и подобное)
2. шагаем по линиям высот, ищем пересечения с поверхностью
Каждый пункт довольно обширно обсужден на rsnd.ru
Здравствуйте, mukhomor, Вы писали:
M>Имеется набор точек в пространстве (геодезическая съемка). Требуется построить горизонтали — линии равных высот. Подскажите, где можно найти ответ.
M>И еще — задача выбора: помогите найти источник, который подскажет, какой оптимальный алгоритм поможет найти координаты точки, если щелкнуть по ней мышкой (точек очень много).
Распишу поподробнее, как мы делали (gok описал общий принцип)
1. Строим триангуляцию (использовали метод Делоне)
2. Берем треугольник, отмечаем на его ребрах точки с одинаковыми высотами (с определенным шагом). Соединяем их
3. Повторяем то же для смежных треугольников.
Так можно получить построение высот в виде отрезков прямых. Если требуется замкнутый контур, задача становится чуть сложнее, но принцип тот же.
ЗЫ. Делалось это все в AutoCAD'е, была предусмотена возможность конвертации полученных линий высот в сплайны и/или кривые, проходящие через те же точки — выбор типа кривой оставался на совести оператора =)
... << RSDN@Home 1.1.4 stable SR1 rev. 568 with тишина...>>
Здравствуйте, HiSH, Вы писали:
У меня самое «ленивое» решение: просто выдернул готовые контуры из матлаба в автокад.
Здравствуйте, gok, Вы писали:
gok>Здравствуйте, HiSH, Вы писали:
gok>У меня самое «ленивое» решение: просто выдернул готовые контуры из матлаба в автокад.

А можно поподробнее? Я так понимаю, из автокада данные о вершинах экспортируются в матлаб, там высчитываются горизонтали и импортируются обратно? Как такое реализовать?

... << RSDN@Home 1.1.4 stable SR1 rev. 568 with тишина...>>
Здравствуйте, HiSH, Вы писали:
Канэчна можно!
В акаде есть куча 3—мерных линий вдоль горных хребтов и море 3-мерных точек между ними. Разбил эти линии на точки с некоторым заданным шагом и все это «облако» затащил в матлаб. А там буквально 2 команды: построить поверхность (griddata()), построить контуры (contour3()). Попутно там же получаем поле градиентов (можно отметить куда вода потечет!).
А потом обратным макаром вытаскиваем из МЛ готовые контуры ввиде 2-мерных полилиний и усе. Изолинии получились даже лучше чем в промышленных пакетах, могу повесить рез-ты сравнения.