exponenta event banner

campitch

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

Описание

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

пример

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

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

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

пример

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

Запрос шага

пример

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 градусов, что означает, что камера указывает непосредственно на поверхность земного шара.

Подробнее

свернуть все

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

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