camroll

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

Описание

Установите список и режим

пример

camroll(g,roll) устанавливает угол вращения камеры для заданного географического земного шара. Установка угла вращения вращает камеру вокруг своей линзы. Для получения дополнительной информации о том, как вращения камеры влияют на ваше представление земного шара, смотрите, Как Ориентация Камеры Влияет на Представление Земного шара.

Camera with double-headed arrow around lens

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

пример

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

Запросите список

пример

outRoll = camroll(g) возвращает угол вращения камеры.

outRoll = camroll(___) устанавливает угол вращения или режим и затем возвращает угол вращения камеры. Можно возвратить угол вращения с помощью любой комбинации входных параметров от предыдущих синтаксисов.

Примеры

свернуть все

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

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

По умолчанию угол вращения является 0 градусами. Вращайте гору в направлении против часовой стрелки путем увеличения угла вращения до 30 градусов.

camroll(g,30)

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

uif = uifigure;
g = geoglobe(uif);

campos(g,44.2668,-71.3849,1757)
camheading(g,90)
campitch(g,0)

Анимируйте представление путем инкрементного изменения угла вращения. Когда угол вращения увеличивается, гора вращается в направлении против часовой стрелки.

for roll = 0:5:180
    camroll(g,roll)
    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®.