local2globalcoord

Преобразуйте локальный для глобальных координат

Синтаксис

gCoord = local2globalcoord(lclCoord,OPTION)
gCoord = local2globalcoord(___,localOrigin)
gCoord = local2globalcoord(___,localAxes)

Описание

gCoord = local2globalcoord(lclCoord,OPTION) преобразует локальные координаты lclCoord к глобальным координатам gCoord. OPTION определяет тип локального для глобальной координаты преобразования.

gCoord = local2globalcoord(___,localOrigin) задает источник системы локальной координаты, localOrigin.

gCoord = local2globalcoord(___,localAxes) задает оси системы локальной координаты, localAxes.

Входные параметры

lclCoord

Локальные координаты в прямоугольной или сферической координате формируются в виде 3 N матрицей. Каждый столбец представляет один набор локальных координат.

Если координаты находятся в прямоугольной форме, каждый столбец содержит (x, y, z) компоненты. Величины в метрах.

Если координаты находятся в сферической форме, каждый столбец содержит (az, el, r) компоненты. az является углом азимута в градусах, el является углом возвышения в градусах, и r является радиусом в метрах.

OPTION

Типы координатных преобразований в виде вектора символов. Допустимые значения

ОПЦИЯПреобразование
'rr'Локальный прямоугольный к прямоугольной глобальной переменной
'rs'Локальный прямоугольный к сферической глобальной переменной
'sr'Локальный сферический к прямоугольной глобальной переменной
'ss'Локальный сферический к сферической глобальной переменной

localOrigin

Источник системы локальной координаты в виде 3 N матрицей, содержащей прямоугольные координаты системного источника локальной координаты относительно глобальной системы координат. N должен совпадать с количеством столбцов gCoord. Каждый столбец представляет отдельный источник. Однако можно задать localOrigin как 3 1 вектором. В этом случае, localOrigin расширен в 3 N матрицей с идентичными столбцами.

Значение по умолчанию: [0;0;0]

localAxes

Оси системы локальной координаты в виде 3 3 N массивом. Каждая страница содержит 3х3 матрицу, представляющую различную систему локальной координаты оси. Столбцы 3х3 матриц задают локальный x, y и оси z в прямоугольной форме относительно глобальной системы координат. Однако можно задать localAxes как одна 3х3 матрица. В этом случае, localAxes расширен в 3 на 3 N массивом с идентичными 3х3 матрицами. Значением по умолчанию является единичная матрица.

Значение по умолчанию: [1 0 0;0 1 0;0 0 1]

Выходные аргументы

gCoord

Glabal координирует в форме прямоугольной или сферической координаты, возвращенной как 3 N матрицей. Размерности gCoord совпадайте с размерностями lclCoord. Источник глобальной системы координат принят, чтобы быть расположенным в (0, 0, 0). Глобальные системные оси являются стандартными модульными базисными векторами в 3-мерном пространстве, (1, 0, 0), (0, 1, 0), и (0, 0, 1).

Примеры

свернуть все

Преобразуйте от локальных прямоугольных координат до глобальных прямоугольных координат. Источник локальной координаты (1,1,1)

globalcoord = local2globalcoord([0;1;0], 'rr',[1;1;1])
globalcoord = 3×1

     1
     2
     1

Преобразуйте локальную сферическую координату в глобальную прямоугольную координату.

globalcoord = local2globalcoord([30;45;4],'sr')
globalcoord = 3×1

    2.4495
    1.4142
    2.8284

Преобразуйте два вектора в глобальных координатах в два вектора в глобальных координатах с помощью global2local функция. Затем преобразуйте их назад в локальные координаты с помощью local2global функция.

Начните с двух векторов в глобальных координатах, (0,1,0) и (1,1,1). Источники локальной координаты (1,5,2) и (-4,5,7).

gCoord = [0 1; 1 1; 0 1]
gCoord = 3×2

     0     1
     1     1
     0     1

lclOrig = [1 -4; 5 5; 2 7];

Создайте две матрицы вращения с помощью функций вращения.

lclAxes(:,:,1) = rotz(45)*roty(-15);
lclAxes(:,:,2) = roty(45)*rotx(35);

Преобразуйте векторы в глобальных координатах в локальные координаты.

lclCoord = global2localcoord(gCoord,'rr',lclOrig,lclAxes)
lclCoord = 3×2

   -3.9327    7.7782
   -2.1213   -3.6822
   -1.0168    1.7151

Преобразуйте векторы в локальных координатах назад в глобальные координаты.

gCoord1 = local2globalcoord(lclCoord,'rr',lclOrig,lclAxes)
gCoord1 = 3×2

   -0.0000    1.0000
    1.0000    1.0000
         0    1.0000

Больше о

свернуть все

Угол азимута, угол возвышения

azimuth angle вектора является углом между x - ось и ортогональной проекцией вектора на плоскость xy. Угол положителен в движении от оси x к оси y. Углы азимута находятся между –180 и 180 градусами. elevation angle является углом между вектором и его ортогональной проекцией на xy - плоскость. Угол положителен при движении к положительному z - ось от плоскости xy. По умолчанию направление опорного направления элемента или массива выравнивается с положительным x - ось. Направление опорного направления является направлением основного лепестка элемента или массива.

Примечание

Угол возвышения иногда задается в литературе как угол, который вектор делает с положительным z - ось. MATLAB® и продукты Communications Toolbox™ не используют это определение.

Этот рисунок иллюстрирует азимут и углы возвышения вектора направления.

Ссылки

[1] Фоли, J. D. А. ван Дам, С. К. Фейнер и Дж. Ф. Хьюз. Компьютерная графика: Принципы и Практика в C, 2-м Эде. Чтение, MA: Аддисон-Уэсли, 1995.

Расширенные возможности

Смотрите также

|

Введенный в R2020a