グローバル座標系のベクトルをローカル座標系へ変換する関数、および、 ローカル座標系のベクトルをグローバル座標系へ変換する関数を、 それぞれ以下のように実装する。
/* ベクトルをグローバルからローカルへ */
void WH_Tensor3D__globalToLocal_whCS_whV_OUT_whV
(double whCS_LCS[3][3],
double whV_b[3],
double OUT__whV_bar_b[3])
/*
入力引数:
whCS_LCS はローカル座標系
whV_b はグローバルベクトル
出力引数:
OUT__whV_bar_bはローカルベクトル
*/
{
double whT_P[3][3]; /* 座標変換テンソル */
WH_Tensor3D__transformationTensor
(whCS_LCS,
whT_P);
WH_Tensor3D__whT_cdot_whV_OUT_whV
(whT_P, whV_b,
OUT__whV_bar_b);
}
/* ベクトルをローカルからグローバルへ */
void WH_Tensor3D__localToGlobal_whCS_whV_OUT_whV
(double whCS_LCS[3][3],
double whV_bar_b[3],
double OUT__whV_b[3])
/*
入力引数:
whCS_LCS はローカル座標系
whV_bar_b はローカルベクトル
出力引数:
OUT__whV_bはグローバルベクトル
*/
{
double whT_P[3][3]; /* 座標変換テンソル */
double whTrans_whT_P[3][3];
WH_Tensor3D__transformationTensor
(whCS_LCS,
whT_P);
WH_Tensor3D__whTrans_whT_OUT_whT
(whT_P,
whTrans_whT_P);
WH_Tensor3D__whT_cdot_whV_OUT_whV
(whTrans_whT_P, whV_bar_b,
OUT__whV_b);
}