2008 vsug leaders summit lightning talks numaguchi

12
速習 クォータニオン 沼口 VSUG Leaders Summit 2008

Upload: vsugjim

Post on 28-May-2015

1.493 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2008 Vsug Leaders Summit Lightning Talks Numaguchi

速習 クォータニオン

沼口 繁

VSUG Leaders Summit 2008

Page 2: 2008 Vsug Leaders Summit Lightning Talks Numaguchi

VSUG Leaders Summit 2008

3D の世界での常識(らしい)

• 3次元での回転を扱うときに使うものらしい

• X, Y, Z の角度の表現でないらしい

• 外積とか、、、数学的要素が強いらしい

• 調べれば調べるほど、、、数学の世界に!

–外積、内積

–複素数、虚数、四元数

–オイラー角、ラジアン、法線ベクトル

–三角関数、行列計算、、、、

Page 3: 2008 Vsug Leaders Summit Lightning Talks Numaguchi

VSUG Leaders Summit 2008

ここはひとつ・・・

• 工学博士が書いた説明は難しい(知っているべき前提条件そのものも難しい)

• そこで、数学的な要素は別にして、、、

• 使い方とその概念だけでも知っておこう

• だって、ライトニングトーク(5分)だもの

Page 4: 2008 Vsug Leaders Summit Lightning Talks Numaguchi

VSUG Leaders Summit 2008

百聞は一見にしかず・・・

• 私たちは3次元にいながらも、かなり2次元的発想– 地図を読むことが得意な人でも難しい、、、、って、地図は2次元だから・・・(通常生活は、「天・地」が固定された3次元空間)

• おおよそ3次元の話を平面図上で書かれても、、、かなり想像力が必要

θ

B

βπ/2

●A

γ

θβ

B

π/2●A

Page 5: 2008 Vsug Leaders Summit Lightning Talks Numaguchi

VSUG Leaders Summit 2008

Quaternion in Secondlife

Page 6: 2008 Vsug Leaders Summit Lightning Talks Numaguchi

VSUG Leaders Summit 2008

Quaternion

• 右手の法則

– X, Y ,Z の方向

–回転の向き

• 反時計まわり

Page 7: 2008 Vsug Leaders Summit Lightning Talks Numaguchi

VSUG Leaders Summit 2008

Quaternion

• グローバル(ワールド)回転軸・座標軸

–東西・南北・天地みたいなもの

– ものが回転してもグローバル座標軸はかわらず

Page 8: 2008 Vsug Leaders Summit Lightning Talks Numaguchi

VSUG Leaders Summit 2008

Quaternion

• クォータニオンは <x, y, z> の 3 元数のオイラー角から求めることができ 4 元数の型をもつ

• 現在の位置をあらわす <0,0,0> をクォータニオンに変換したものを Qo、x軸を中心に 30度回転させるを意味する <30,0,0> をクォータニオンに変換したものを Qa とした場合

• 回転後の位置をあらわすクォータニオン Qb は

Qb = Qo X Qa

になる。現在の位置のクォータニオンに右から積算する

Page 9: 2008 Vsug Leaders Summit Lightning Talks Numaguchi

VSUG Leaders Summit 2008

Quaternion

• <30,30,30> は X軸で30度、Y軸で30度、Z軸で30度まわす、としたいが

• <30,30,30> をクォータニオンに変換して、現在位置のクォータニオンに右から積算すると

• なにか、、、おかしい

• 実は、<30,30,30> は、Z軸で30度まわし、その次に Y軸で30度、最後に X 軸で 30度を意味する

Page 10: 2008 Vsug Leaders Summit Lightning Talks Numaguchi

VSUG Leaders Summit 2008

Quaternion

• 実は、、、現在位置を表すクォータニオンに、回転させたい軸と角度のクォータニオンを「左」から積算すると、、、、

• ローカル座標軸・回転軸を中心にまわる!

グローバル座標軸 ローカル座標軸

Page 11: 2008 Vsug Leaders Summit Lightning Talks Numaguchi

VSUG Leaders Summit 2008

まとめ

• クォータニオンは X, Y, Z の角度から算出 (現実には2つの角度だけで目的位置までの回転を指定できる)

• 四元数のクォータニオンを直接いじることはあまりない

• 積算することで回転角度を加える

• 割り算することで回転角度を引く

• グローバル回転軸 (Z->Y->X)

• ローカル回転軸 (ロール、ピッチ、ヨー)

• 右手の法則 (正の向きと回転方向)

• WPF での実装は各自確認(笑

Page 12: 2008 Vsug Leaders Summit Lightning Talks Numaguchi

VSUG Leaders Summit 2008