メインコンテンツ

local2globalcoord

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

説明

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

詳細

すべて折りたたむ

参照

[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 で導入