exponenta event banner

camheading

Установка или запрос угла заголовка камеры для географического глобуса

Описание

Задать курс и режим

пример

camheading(g,heading) задает угол заголовка камеры для указанного географического шара. Установка угла курса приводит к смещению камеры влево или вправо. Дополнительные сведения о том, как поворот камеры влияет на вид земного шара, см. в разделе Как ориентация камеры влияет на вид земного шара.

Camera with double-headed arrow in front of lens, pointing left and right

camheading(g,'auto') переводит курс камеры в автоматический режим, позволяя географическому глобусу определять угол курса на основе выводимых на печать данных. При создании географического глобуса по умолчанию используется автоматический режим. При взаимодействии с глобусом с помощью мыши режим переключается на автоматический.

пример

camheading(g,'manual') устанавливает заголовок камеры в ручной режим, указывая, что географический земной шар сохраняет угол заголовка при изменении выводимых на печать данных. При изменении угла заголовка с помощью camheading затем режим переключается в ручной режим.

Заголовок запроса

пример

outHeading = camheading(g) возвращает угол заголовка камеры.

outHeading = camheading(___) устанавливает угол курса или режим, а затем возвращает угол курса камеры. Угол заголовка можно вернуть с помощью любой комбинации входных аргументов из предыдущих синтаксисов.

Примеры

свернуть все

Создайте географический глобус. Разместите камеру рядом с горой Килиманджаро, указав широту, долготу и эллипсоидальную высоту. Установите угол наклона равным 0 градусам, чтобы камера указывала на вершину.

uif = uifigure;
g = geoglobe(uif);
campos(g,-3.1519,37.3561,5500)
campitch(g,0)

По умолчанию угол заголовка равен 360 градусам, что эквивалентно углу курса 0 градусов. Переместите камеру вправо, изменив угол курса на 15 градусов.

camheading(g,15)

Создайте географический глобус. Разместите камеру в верхней части горы Вашингтон, указав широту, долготу и эллипсоидальную высоту. Измените угол наклона таким образом, чтобы камера была обращена к горизонту прямо вниз.

uif = uifigure;
g = geoglobe(uif);
campos(g,44.2700,-71.3038,2000)
campitch(g,0)

Анимация вида путем инкрементного изменения угла заголовка. По мере увеличения угла заголовка вид камеры смещается вправо.

for heading = 0:5:180
    camheading(g,heading)
    drawnow
end

Определите положение и курс, шаг и углы крена камеры. Эта информация используется для управления видом другого географического шара или для автоматизации навигации.

Создайте географический глобус. Перейдите в интересующую область с помощью мыши или жестов. В этом примере перейдите в область вокруг Гавайев.

uif = uifigure;
g = geoglobe(uif);

Bird's-eye view of Hawaii

Запросите широту, долготу и эллипсоидальную высоту камеры и назначьте их переменной.

[camlat,camlon,camh] = campos(g)
camlat =

   18.1781


camlon =

 -155.9297


camh =

   6.6664e+04

Запросите заголовок, шаг и углы крена камеры и назначьте их переменной.

heading = camheading(g)
pitch = campitch(g)
roll = camroll(g)
heading =

   16.7613


pitch =

  -24.1507


roll =

  359.9977

Эти значения используются для управления видом другого географического земного шара. Например, создайте новый географический глобус и программно задайте вид.

uif2 = uifigure;
g2 = geoglobe(uif2);
campos(g2,camlat,camlon,camh)
camheading(g2,heading)
campitch(g2,pitch)
camroll(g2,roll)

Сохраните положение, курс, тангаж и углы крена камеры, установив режимы камеры в ручной режим. Если режим камеры не установлен в ручной режим, то при печати новых данных вид камеры сбрасывается.

Импорт образца трассы вдоль дорог в Массачусетсе с помощью gpxread функция. Создайте географический глобус с дорожной картой и без данных о местности. Сохранение параметров базовой карты и рельефа с помощью hold функция. Затем с помощью мыши перейдите в область недалеко от Восточного Массачусетса.

track = gpxread('sample_tracks.gpx','Index',2);
lat = track.Latitude;
lon = track.Longitude;
height = track.Elevation;

uif = uifigure;
g = geoglobe(uif,'Basemap','streets','Terrain','none');
hold(g,'on')

Map of an area around Eastern Massachusetts with labeled cities and roads

Установите режимы камеры для ручной печати и печати данных. Обратите внимание, что положение камеры не изменяется.

campos(g,'manual')
camheight(g,'manual')
camheading(g,'manual')
campitch(g,'manual')
camroll(g,'manual')
geoplot3(g,lat,lon,height,'LineWidth',3)

The same map with a blue line plotted along several roads

Входные аргументы

свернуть все

Географический глобус, указанный как GeographicGlobe объект. [1 ]

Угол курса камеры, заданный как скалярное значение в диапазоне [-360, 360] градусов.

Подробнее

свернуть все

Как ориентация камеры влияет на представление глобуса

Значения курса камеры, тангажа и углов крена влияют на вид географического земного шара. При сопоставлении Toolbox™ эти значения привязываются к земному шару с использованием системы координат «север-восток-вниз» (NED). В результате, когда курс, шаг и углы крена камеры равны нулю, камера располагается на плоскости, параллельной касательной плоскости земного шара при текущей широте и долготе. Дополнительные сведения о системах координат NED см. в разделе Выбор системы координат 3-D.

A camera positioned far above the Earth. The camera has three axes labeled xNorth, yEast, and zDown.

Измените вид географического шара, изменив курс, шаг и углы крена камеры:

  • Заголовок (Heading) - поворот камеры вокруг оси Z, при котором вид перемещается влево или вправо. Переместите вид вправо, увеличив угол заголовка.

  • Шаг (Pitch) - поворот камеры вокруг оси Y, при котором вид наклоняется вверх или вниз. Наклоните вид вверх, увеличив угол наклона.

  • Рулон (Roll) - вращает камеру вокруг оси X, которая вращает камеру вокруг объектива. Вращайте вид против часовой стрелки, увеличивая угол крена.

A camera with three axes labeled x, y, and z. The origin sits at the center of the camera lens.

Совет

  • Если угол наклона близок к -90 (по умолчанию) или 90 градусов, камера теряет одну степень свободы вращения. В результате при изменении угла крена вместо него может измениться угол заголовка. Это явление называется карданным замком. Чтобы избежать воздействия карданного замка, используйте camheading вместо функции camroll функция.

Представлен в R2020b

[1] Выравнивание границ и меток областей является представлением функции, предоставляемой поставщиками данных, и не подразумевает одобрения MathWorks ®.