Main Content

global2localcoord

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

R2020a 以降

説明

lclCoord = global2localcoord(gCoord) は、グローバル直交座標 gCoord をローカル直交座標 lclCoord に変換します。この構文では、グローバル座標の原点は (0, 0, 0) にあり、座標軸は x、y、および z の方向の単位ベクトルです。

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

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

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

すべて折りたたむ

グローバル直交座標 (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

関数 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 は半径 (メートル単位) です。

グローバル座標系の原点は (0, 0, 0) であると仮定されます。グローバル座標系の座標軸は、3 次元空間 (1, 0, 0)、(0, 1, 0)、および (0, 0, 1) の標準の単位基底ベクトルです。

データ型: 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 列の行列として返されます。lclCoord の次元は gCoord の次元と一致しなければなりません。

データ型: 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 で導入