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 object.[1]

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

Больше о

свернуть все

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

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

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

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

  • Заголовок — Вращает камеру о своем z - ось, которая переключает левое или правое представление. Переместите представление направо путем увеличения угла рыскания.

  • Тангаж — Вращает камеру о своем y - ось, которая наклоняет представление или вниз. Наклоните представление путем увеличения угла тангажа.

  • Крен — Вращает камеру о своем x - ось, которая вращает камеру вокруг ее линзы. Вращайте представление против часовой стрелки путем увеличения угла вращения.

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

Советы

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

Введенный в R2020b

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