Над поверхностью и полигоном можно применить логические операции, если полигон замкнут. В расчете используются координаты X, Y:
-
удаление всех точек вне полигона;
- удаление всех точек внутри полигона;
- установка аппликаты, равной заданной константе, у всех точек вне полигона;
- установка аппликаты, равной заданной константе, у всех точек внутри полигона.
Визуализация
Режимы просмотра объектов:
-
2D — двухмерная визуализация;
- 3D — трехмерная визуализация.
Окна визуализации можно открывать при помощи специальной кнопки. По умолчанию, если еще нет окон визуализации, создается окно 2D-просмотра.
При появлении первого объекта окно подстраивается так, чтобы объект целиком помещался в центре, а по краям оставалось свободное место равное 1/10 части общего размера окна. При выделении объекта на дереве он отображается во всех открытых окнах визуализации.
Объект с наибольшим значением Z-координаты находится выше остальных — отображается поверх остальных. При пересечении двух поверхностей перекрывающая часть поверхностей рисуется, а перекрываемая — скрывается. Если точка или полигон лежит ниже отрисованной поверхности, то они не появляются.
В зависимости от настроек, растровые изображения рисуются позади или поверх всех остальных объектов. Можно задать степень прозрачности, чтобы при отображении не возникало полного перекрытия объектов, находящихся позади.
Поддерживается отображение нескольких исходных файлов. «На лету» подхватываются изменения цветовой палитры поверхности, прозрачности растрового изображения и так далее. При нажатии «Ctrl + левая кнопка мыши» можно определить высоту в заданной точке поверхности, а сочетание клавиш «Ctrl + F» направляет «камеру» на выделенный в дереве объект.
Объекту «растровое изображение» присваиваются координаты, чтобы привязать растр и исключить сдвиг при изменении масштаба. У каждого объекта свои настройки визуализации.
Для настройки отображения поверхностей программа предлагает настроить дискретную или непрерывную палитру.
2D-визуализация позволяет просматривать растровые изображения, точки, полигоны и поверхности в горизонтальной плоскости. Логика компонента реализована «с нуля» средствами .NET WPF. При увеличении масштаба или передвижении объектов, рисуется только видимая часть объектов.
В 3D-визуализации рисуется координатная сетка. Можно выбрать один из трех типов источника света: солнечный, трехточечный, стандартный.
В левом нижнем углу отображается стрелка, которая вращается со всеми объектами и указывает на север, в сторону увеличения ординат (координаты Y). Нижняя часть стрелки (в сторону уменьшения координаты Z) окрашена в красный цвет, а верхняя часть (в сторону увеличения координаты Z) окрашена в синий цвет.
Расчет изолиний
Изолинии — линии поверхности с одинаковым значением высоты. С помощью изолиний можно визуализировать плоские и крутые объекты. Чем ближе располагаются изолинии друг к другу, тем больше кривизна поверхности.
На основе минимальной и максимальной высот поверхности и заданного в настройках шага считается набор высот, на которых будут рисоваться изолинии. Затем на каждом уровне высоты рассчитывается набор изолиний с помощью алгоритма «Marching squares».