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 объект.[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®.

Для просмотра документации необходимо авторизоваться на сайте