campitch

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

Описание

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

пример

campitch(g,pitch) устанавливает угол тангажа камеры для заданного географического глобуса. Установка угла тангажа наклоняет камеру вверх или вниз. Для получения дополнительной информации о том, как повороты камеры влияют на представление глобуса, смотрите «Как ориентация камеры влияет на представление глобуса».

Camera with double-headed arrow in front of lens, pointing up and down

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

пример

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

Запрос- Тангаж

пример

outPitch = campitch(g) возвращает угол тангажа камеры.

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

Примеры

свернуть все

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

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

Наклоните камеру вверх, увеличив угол тангажа до 15 степеней.

campitch(g,15)

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

uif = uifigure;
g = geoglobe(uif);

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

Анимируйте вид путем пошагового изменения угла тангажа. Когда угол тангажа увеличивается, камера изменяется с указания на землю на указание на небо. После концов анимации измените угол тангажа на 0 степени.

for pitch = -90:2:90
    campitch(g,pitch)
    drawnow
end
campitch(g,0)

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

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

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]

Угол тангажа камеры, заданный как скалярное значение в области значений [ -90 , 90 ] степеней. По умолчанию угол тангажа составляет -90 степени, что означает, что камера указывает непосредственно на поверхность земного шара.

Подробнее о

свернуть все

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

Значения курса, тангажа и углов крена камеры влияют на представление географического глобуса. 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®.