2010年12月22日水曜日

rotationが交換可能なときっす(2)

昨日の続きになるっす。
結論まで一気にやるっすね。
どうもぺんぎんっす( ◎v◎ )


昨日の記事を読んでない場合は読んでからの方が良いっすよ。
http://northernpenguin-ex.blogspot.com/2010/12/rotation.html

a * b と b * a の各要素を比較して
x要素について a.y * b.z = a.z * b.y -①
y要素について a.z * b.x = a.x * b.z -②
z要素について a.x * b.y = a.y * b.x -③
ここからスタートっす。

場合分けするっす。
I aがZERO_ROTATIONのとき
b.x、b.y、b.zの値によらず成り立つ。

II a.x≠0 かつ a.y=0 かつ a.z=0 のとき
②より b.z=0
③より b.y=0
②または③より b.xの値によらず成り立つ。
同様にして、
a.x=0 かつ a.y≠0 かつ a.z=0 のとき
 b.x = b.z = 0 のとき、b.yの値によらず成り立つ。
a.x=0 かつ a.y=0 かつ a.z≠0 のとき
 b.x = b.y = 0 のとき、b.zの値によらず成り立つ。

III a.x≠0 かつ a.y≠0 かつ a.z=0 のとき
②より b.z=0
 A b.y=0 のとき
 ③より b.x=0
 ∴ bはZERO_ROTATION
 B b.y≠0 のとき
 ③より b.x≠0
 ③の両辺を b.x * b.y で割ると
 
a.x / b.x = a.y / b.y
 uを0以外の実数として a.x / b.x = a.y / b.y = u とすると
 a.x = u * b.x
 a.y = u * b.y と書けるから
 A = (a.x, a.y, 0), B = (b.x, b.y, 0) とすると
 A = uB となる。
 ∴O = (0, 0, 0)とすると、BはOA上にある
同様にして、a.x≠0 かつ a.y=0 かつ a.z≠0 のとき
a.x=0 かつ a.y≠0 かつ a.z≠0 のときも
  bはZERO_ROTATION または
  BはOA上にある。

IV a.x≠0 かつ a.y≠0 かつ a.z≠0 のとき
 A b.z=0のとき
 ①より b.y=0
 ②より b.x=0
 ∴ bはZERO_ROTATION
 B b.z≠0のとき
 ①より b.y≠0
 ②より b.x≠0
 ①の両辺を b.y * b.z で割ると
 a.y / b.y = a.z / b.z -④
 ②の両辺を b.x * b.x で割ると
 a.z / b.z = a.x / b.x -⑤
 ③の両辺を b.x * b.y で割ると
 a.x / b.x = a.y / b.y -⑥
 ④⑤⑥より uを0以外の実数として
 b.x = u * a.x
 b.y = u * a.y
 b.z = u * a.z と書けるから
 A = (a.x, a.y, a.z), B = (b.x, b.y, b.z) とすると
 A = uB となる。
 ∴O = (0, 0, 0)とすると、BはOA上にある


これで場合分けが完了っす。
キーは「BはOA上にある」、これっす。
IIもa.x = u * b.x のカタチに出来るので、これもまとめられるっす。

OAとかOBっていうのは回転軸を表すベクトルっす。
というわけで結論は
「回転軸が同じなら交換可能」
っていうのが分かったっす。

0 件のコメント:

コメントを投稿

Free Avatar