global2localcoord

Преобразуйте глобальную переменную в локальные координаты

Синтаксис

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

Описание

lclCoord = global2localcoord(gCoord, OPTION) преобразовывает глобальные координаты gCoord в локальные координаты lclCoord. OPTION определяет тип преобразования глобальной переменной к локальной координате. В этом синтаксисе источник глобальной координаты расположен в (0,0,0), и оси координат являются единичными векторами в x, y и направлениях z.

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

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

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

gCoord

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

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

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

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

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]

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

lclCoord

Локальные координаты в форме прямоугольной или сферической координаты, возвращенной как 3 N матрицей. Размерности lclCoord совпадают с размерностями gCoord.

Примеры

свернуть все

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

lclCoord = global2localcoord([0;1;0],'rr',[1;1;1])
lclCoord = 3×1

    -1
     0
    -1

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

lclCoord = global2localcoord([45;45;50],'sr',[50;50;50])
lclCoord = 3×1

  -25.0000
  -25.0000
  -14.6447

Преобразуйте два вектора в глобальных координатах в два вектора в глобальных координатах с помощью функции 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® и продукты Phased Array System Toolbox™ не используют это определение.

Эта фигура иллюстрирует угол азимута и угол повышения для вектора, который появляется как зеленая сплошная линия. Система координат относительно центра универсальной линейной матрицы, элементы которой появляются как синие круги.

Ссылки

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

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

Введенный в R2011a