В этом примере показано, как добавить подсветку в карты ландшафта с помощью lightm
функция. Чтобы достигнуть более прекрасного управления легкими положениями (например, в небольших районах, освещенных несколькими световыми сигналами), необходимо задать легкие положения с помощью спроектированных координат, потому что световые объекты являются дочерними элементами осей и совместно используют их координатное пространство.
Создайте карту ландшафта.
latlim = [ 41.20 41.95]; lonlim = [-70.95 -70.10]; cd dted\w071 % Note: Your absolute path may vary. samplefactor = 1; [capeterrain, caperef] = dted('n41.dt0', samplefactor, ... latlim, lonlim); capeterrain(capeterrain == 0) = -1; capecoast = shaperead('usastatehi', ... 'UseGeoCoords', true, ... 'BoundingBox', [lonlim' latlim']);
Создайте карту области в заданных пределах широты и долготы.
figure ax = usamap(latlim,lonlim); geoshow(ax,capecoast,'FaceColor','none'); geoshow(ax,capeterrain,caperef,'DisplayType','texturemap'); demcmap(capeterrain)
Установите вертикальное преувеличение. Используйте daspectm
указывать, что вертикальные изменения исчисляются в метрах и должны быть умножены на 20.
daspectm('m',20)
Убедитесь, что данные о линии отображаются. Чтобы гарантировать, что это не затенено ландшафтом, используйте zdatam
установить его на самое высокое вертикальное изменение cape1
данные о ландшафте.
zdatam('allline',max(capeterrain(:)))
Задайте местоположение для источника света с lightm
функция. (Если вы не используете аргументы, графический интерфейс пользователя для установки позиционных свойств для нового света открывается.)
lightm(42,-71)
Расчеты подсветки заставили карту становиться довольно темной с зеркальными подсветками. Теперь восстановите его яркость путем определения трех поверхностных свойств отражающей способности в области значений от 0 до 1.
ambient = 0.7; diffuse = 1; specular = 0.6; material([ambient diffuse specular])
Поверхность выглядит пятнистой, потому что нет никакой интерполяции компонента подсветки (плоские фасеты моделируются). Откорректируйте это путем определения штриховки Гура
lighting Gouraud
Чтобы сравнить освещенную карту с неосвещенной версией, отключите подсветку.
lighting none