Main Content

local2globalcoord

ローカル座標からグローバル座標への変換

R2020a 以降

説明

gCoord = local2globalcoord(lclCoord) は、ローカル直交座標 lclCoord をグローバル直交座標 gCoord に変換します。

gCoord = local2globalcoord(lclCoord,option) は、座標変換タイプ option を使用して、ローカル座標をグローバル座標に変換します。

gCoord = local2globalcoord(___,localOrigin) は、ローカル座標系の原点 localOrigin を指定します。この構文は、前の構文の入力引数のいずれかと一緒に使用します。

gCoord = local2globalcoord(___,localAxes) は、ローカル座標系の座標軸 localAxes を指定します。この構文は、前の構文の入力引数のいずれかと一緒に使用します。

すべて折りたたむ

ローカル直交座標からグローバル直交座標に変換します。ローカル座標の原点は (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

関数 global2localcoord を使用して、2 つのベクトルをグローバル座標からローカル座標に変換します。次に、関数 local2globalcoord を使用して、それらをローカル座標からグローバル座標に変換し直します。

グローバル座標の 2 つのベクトル (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];

回転関数を使用して 2 つの回転行列を作成します。

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

入力引数

すべて折りたたむ

直交または球面座標形式のローカル座標。3 行 N 列の行列として指定します。各列は、1 つのローカル座標セットを表します。

座標が直交形式の場合、各列には (x,y,z) 成分が含まれます。単位はメートルです。

座標が球面形式の場合、各列には (az,el,r) 成分が含まれます。az は方位角 (度単位)、el は仰角 (度単位)、r は半径 (メートル単位) です。

データ型: double

座標変換のタイプ。string スカラーまたは文字ベクトルとして指定します。以下の値のいずれかを指定します。

変換
"rr" または 'rr'ローカル直交からグローバル直交
"rs" または 'rs'ローカル直交からグローバル球面
"sr" または 'sr'ローカル球面からグローバル直交
"ss" または 'ss'ローカル球面からグローバル球面

データ型: string | char

ローカル座標系の原点。グローバル座標系に対するローカル座標系原点の直交座標を含む 3 行 N 列の行列として指定します。N は、gCoord の列数と一致しなければなりません。各列は個別の原点を表します。あるいは、localOrigin を 3 行 1 列のベクトルとして指定できます。その場合、localOrigin は、同一の列をもつ 3 行 N 列の行列に展開されます。

データ型: double

ローカル座標系の座標軸。3×3×N の配列として指定します。各ページには、個別のローカル座標系の座標軸を表す 3 行 3 列の行列が含まれます。3 行 3 列の行列の列は、グローバル座標系に対する直交形式のローカルの x 軸、y 軸、および z 軸を指定します。あるいは、localAxes を単一の 3 行 3 列の行列として指定できます。その場合、localAxes は、同一の 3 行 3 列の行列をもつ 3×3×N の配列に展開されます。既定値は単位行列です。

データ型: double

出力引数

すべて折りたたむ

直交または球面座標形式のグローバル座標。3 行 N 列の行列として返されます。gCoord の次元は lclCoord の次元と一致しなければなりません。グローバル座標系の原点は (0, 0, 0) であると仮定されます。グローバル座標系の座標軸は、3 次元空間 (1, 0, 0)、(0, 1, 0)、および (0, 0, 1) の標準の単位基底ベクトルです。

データ型: double

詳細

すべて折りたたむ

方位角と仰角

ベクトルの "方位角" は、xy 平面へのベクトルの直交投影と x 軸との間の角度です。この角度は、x 軸から y 軸に向かって正です。方位角は –180 ~ 180 度の範囲内です。"仰角" は、ベクトルと xy 平面へのその直交投影の間の角度です。この角度は、xy 平面から正の z 軸に向かって正です。既定では、素子またはアレイのボアサイト方向は正の x 軸に一致します。ボアサイト方向は、素子またはアレイのメイン ローブの方向です。

メモ

仰角は、ベクトルが正の z 軸に対して作る角度として定義されることもあります。MATLAB® 製品と Communications Toolbox™ 製品ではこの定義は使用しません。

次の図は、方向ベクトルの方位角と仰角を示しています。

参照

[1] Foley, J. D., A. van Dam, S. K. Feiner, and J. F. Hughes. Computer Graphics: Principles and Practice in C, 2nd Ed. Reading, MA: Addison-Wesley, 1995.

拡張機能

バージョン履歴

R2020a で導入