2013年1月26日土曜日

もうひとつのZERO_ROTATIONっす


今週のいつもの会は「ドア」がテーマっす。
気が向いたらソースを載せるっすね。
どうもぺんぎんっす( ◎v◎ )


回転軸が任意で回転角が0のrotationはZERO_ROTATIONっす。
でも、回転角が2πの場合はZERO_ROTATIONじゃないっす。

ZERO_ROTATIONっていうのは<0.0, 0.0, 0.0, 1.0>っす。
回転角は実部だけ見ればいいので、1.0に注目っす。
回転角をθとすると、cos(θ/2)が1.0なので
θは4nπになるっす。
2πの場合は違うことが分かるっすね。

回転角が2πのとき、実部はcos(2π/2)で-1っす。
ノルムが1っすから、虚部は全部ゼロっす。
つまり<0.0, 0.0, 0.0, -1.0>っす。

くるっと1回転したら違う姿勢になると大事件っすから、
同じ事だということを示さないといけないっす。
「逆の逆で元に戻る」とやるのが簡単っすかね。

あるrotation、rの逆回転qを求めるっす。
2通りあるっすね。
 ・回転角の符号をひっくり返す
 ・回転軸を原点を対称にしてひっくり返す
まず、回転角の符号をひっくり返して
 <r.x, r.y, r.z, -r.s>
これの回転軸をひっくり返して
 <-r.x, -r.y, -r.z, -r.s>
逆の逆で元に戻ったので、元のrと同じになるっす。

符号を全部入れ替えたら同じになるっすから、、
<0.0, 0.0, 0.0, 1.0>と<0.0, 0.0, 0.0, -1.0>も同じっす。


ま、どうでもいい知識っすね。
Free Avatar