■四元数の応用(その17)
四元数qに対して、変換f(x)=qxq^(-1)を考えてきたが、とくに|q|=1のときはq^(-1)=q~となり、
f(x)=qxq^(-1)=qxq~
となる。
四元数を用いた回転は
f(x)=axa~
kik~=-kik=-jk=-i・・・xy平面上の180度回転
n=(n1,n2,n3)=n1i+n2j+n3k,n1^2+n2^2+n3^3=1
q=cos(θ/2)+nsin(θ/2)
|q|=cos^2(θ/2)+(n1^2+n2^2+n3^2)sin^2(θ/2)=cos^2(θ/2)+sin^2(θ/2)=1
nの周りにθ回転させる操作はqxq~で与えられる。
[1]xy平面に関する回転:q=cos(θ/2)+ksin(θ/2)
[2]yz平面に関する回転:q=cos(θ/2)+isin(θ/2)
[3]xz平面に関する回転:q=cos(θ/2)+jsin(θ/2)
===================================
【3】単位四元数と3次元の回転
x,y,z軸の周りの回転では使いにくい.そこで,単位ベクトル
n=(α,β,γ)
を回転軸とし,その周りに正の回転方向にθだけ回転する回転行列はα,β,γは方向余弦で,α^2+β^2+γ^2=1を満たすものとして
R(1,1)=α^2(1-cosθ)+cosθ
R(2,2)=β^2(1-cosθ)+cosθ
R(3,3)=γ^2(1-cosθ)+cosθ
R(1,2)=αβ(1-cosθ)+γsinθ
R(2,1)=αβ(1-cosθ)-γsinθ
R(1,3)=αγ(1-cosθ)-βsinθ
R(3,1)=αγ(1-cosθ)+βsinθ
R(2,3)=βγ(1-cosθ)+αsinθ
R(3,2)=βγ(1-cosθ)-αsinθ
で表される.
眺めてみればわかるように、とても複雑な形をしている。
空間の回転を処理する際、行列よりも四元数を用いたほうが記憶容量が小さく、演算のスピードも速いのである。
===================================