Можно сделать размерные монохромные карты теневого облегчения с функцией surflm
, который походит на MATLAB®
surfl
функция. Эффект surflm
похоже на использование световых сигналов, но само освещение моделей функции (с одним “источником света”, который вы задаете, когда вы вызываете его, но не может изменить местоположение) путем взвешивания поверхностных нормалей вместо того, чтобы использовать световые объекты.
Теневые вспомогательные карты этого типа обычно изображаются двумерно, а не как перспективные отображения. surflm
функция работает с любой проекцией кроме globe
.
surflm
функция принимает определенные геолокацию сетки данных только. Вспомните, однако, что обычные сетки данных являются подмножеством определенных геолокацию сеток данных, для которых они могут быть преобразованы с помощью meshgrat
(сочтите целесообразным Данные С координатной сеткой к Координатной сетке). Следующий пример иллюстрирует эту процедуру.
Симулируйте один источник света на рисунке, использующем surflm
. Во-первых, загрузите данные о вертикальном изменении и географический объект ссылки ячеек для корейского полуострова. Импортируйте данные о векторе береговой линии с помощью shaperead
. Создайте карту с соответствующими пределами широты и долготы с помощью worldmap
.
load korea5c latlim = korea5cR.LatitudeLimits; lonlim = korea5cR.LongitudeLimits; coastline = shaperead('landareas',... 'UseGeoCoords', true,... 'BoundingBox', [lonlim' latlim']); worldmap(latlim,lonlim)
Отобразите данные о береговой линии с помощью geoshow
.
geoshow(coastline,'FaceColor','none')
Преобразуйте обычную сетку данных к определенной геолокацию сетке данных с помощью meshgrat
. Затем сгенерируйте теневую вспомогательную карту с помощью surflm
. По умолчанию направление подсветки 45º против часовой стрелки от направления просмотра. Поэтому источник света находится на юго-востоке. Измените палитру в монохроматическую палитру 'copper'
.
[klat,klon] = meshgrat(korea5c,korea5cR);
s = surflm(klat,klon,korea5c);
colormap('copper')
Очистите карту. Затем отобразите теневую вспомогательную карту с различным источником света путем определения азимута как 135º и вертикальное изменение как 60º. Поверхность освещает и имеет новый символ, потому что она освещена ближе к издержкам и от различного направления.
clmo(s) s = surflm(klat,klon,korea5c,[135 60]);
Переключите свет на северо-запад путем определения азимута как-135º. Понизьте свет к 40º выше горизонта. Более низкий источник света уменьшает полный коэффициент отражения поверхности, когда просматривается сверху. Поэтому задайте вектор 1 на 4 из констант коэффициента отражения, которые описывают относительные вклады рассеянного света, рассеивают отражение, зеркальное отражение и зеркальный коэффициент сияния.
clmo(s); ht = surflm(klat,klon,korea5c,[-135 30],[0.65 0.4 0.3 10]);
Горные гребни, которые запускаются с северо-востока на юго-запад, приблизительно перпендикулярны источнику света. Поэтому эти параметры демонстрируют соответствующую подсветку для ландшафта.
Монохроматическая окраска в этом примере не дифференцирует землю от воды. Для примера, который дифференцирует землю от воды, смотрите Цветное Поверхностное Теневое Облегчение.