重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

[A]系で(0,0,-1)となるベクトルが[B]系で(1/√3,1/√3,1/√3)に変換されるような座標系変換行列Mを作りたいのですが、うまくいきません。
イメージは、立方体に垂直に入射してきたビームが座標系変換によって、立方体の1つの頂点から斜め45度方向に入射するようになるという感じです。[B]系での成分はマイナスがついても構いません、とにかく斜め45度方向に入射させたいのです。
私が考えたMは以下の通りですが、座標変換の結果が(0.707000, -0.499849, -0.499849)になってしまいました。
どこが間違っているのか、ご教示いただけましたら幸いです。

(1)X,Y,Z軸それぞれの45度回転行列MX,MY,MZを作る。
MX = [ 1, 0,   0,   0
    0, cos45, sin45, 0
    0, -sin45, cos45, 0
    0, 0,   0,   1 ]

MY = [ cos45, 0,   -sin45, 0
    0,   1,   0,   0
    sin45, 0,   cos45, 0
    0,   0,   0,   1 ]

MZ = [ cos45, sin45, 0, 0
    -sin45, cos45, 0, 0
    0,   0,   1, 0
    0,   0,   0, 1 ]

並進移動を合わせた表記で、これは教科書に載っているので間違っていないと思います。

(2)MX,MY,MZを順にかけて、Mを作る。
M = MX * MY * MZ

45度方向なので、かける順序は気にしなくていいと思いました。

A 回答 (2件)

[1/√3,1/√3,1/√3] を [0,0,-1] に移す行列を求め、その逆を取ればよいのです。



先ず、z軸の回りに [1/√3,1/√3,1/√3] を π/4 回転させ、y-z平面上に移します。
そうすると、 [1/√3,1/√3,1/√3] の点の y座標は √2/√3、z座標は 1/√3 となります。
それを、次に、x軸の回りにある角度回転させ、-z軸の負の方向に合わせます。
その角度は、今分かりませんが、それでも構いません。というのは、
y-z平面における y座標、z座標が分かっていて、その偏角をθとすると
-z軸の負の方向に合わせるための回転角のsin(θ+π/2)、cos(θ+π/2)が分かるからです。

スペースを節約するため、
sin(π/4) = cos(π/4) = 1/√2 = a
cosθ= √2/√3 = c、sinθ= 1/√3 = b
従って、cos(-θ-π/2) = 1/√3 = b、sin(-θ-π/2) = -√2/√3 = -c
と書くことにします。

始めの回転(z軸の回りに [1/√3,1/√3,1/√3] を π/4 回転)では、
[ a -a  0 ][b] = [0 ] = [0]
[ a  a  0 ][b]  [2ab] [√2/√3]
[ 0  0  1 ][b]  [b ]   [1/√3]

後の回転(x軸の回りに-θ-π/2回転)では、
[ 1  0 0 ]
[ 0 b c]
[ 0 -c b]

これらの行列の積は、
[ a  -a  0]
[ ab ab c]
[-ac -ac b]

これの逆行列は、
[ ab^2+ac^2   -ab  -ac ]
[-ab^2-ac^2   ab   -ac ]
[  0     -2a^2c  2a^2b ]

これらに数値を代入すると、
[ 1/√2  -1/√6 -1/√3 ]
[-1/√2  1/√6  -1/√3]
[   0  -√(2/3) 1/√3 ]
    • good
    • 0
この回答へのお礼

さっそくの詳しいご回答、どうもありがとうございます。
私の考えたような単純なものではなく、このような工夫がいるのですね。大変助かりました、ありがとうございました。

お礼日時:2009/08/21 00:59

方向余弦が 1/√3, 1/√3, 1/√3 なので, 回転角がおかしいんじゃないでしょうか?


状況を思い描いてやると, MY*MZ によって (0, 0, -1) は (1/√2, 0, -1/√2) になりますがそのあとの MX では x座標が変化しません.
(1/√3, 1/√3, 1/√3) に直交するベクトルとして (1/√2, -1/√2, 0) がとれます. すると, これらに直交するベクトルはこれらの外積として求まりますから, 適当に x, y, z軸を対応させれば求まるっちゃ求まりますね.
    • good
    • 0
この回答へのお礼

さっそくのご回答、どうもありがとうございます。
答えから導く方法もあるのですね。参考になりました。

お礼日時:2009/08/21 00:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!