N88-BASICでクォータニオン(quaternion) (2回目)
2021/6/27(日) N88-BASICでクォータニオン(quaternion) (2 回 目 ) (by ULproject for N88-BASIC,NL-BASIC) 行列 (matrix)の代わりに四元数(しげんすう) (quaternion)を使用して見ました。 今回は、四元数から行列を作り 回転移動させました p = (x, y, z) q = (a, b, c) Q = (w, q) = (w, a, b, c) p'= QpQ~ p'= (w 2 -q・q)p+2(q・p)q+2w(q×p) (w 2 -q・q)p |w 2 -a 2 -b 2 -c 2 0 0||x| =|0 w 2 -a 2 -b 2 -c 2 0||y| |0 0 w 2 -a 2 -b 2 -c 2 ||z| (q・p)q =(ax+by+cz)q =(a 2 x+aby+acz,bax+b 2 y+bcz,cax+cby+c 2 z) |a 2 ab ca||x| =|ab b 2 bc||y| |ca bc c 2 ||z| (q×p) =(bz-cy, cx-az, ay-bx) =(bz,cx,ay)-(cy,az,bx) | 0 -c b||x| =| c 0 -a||y| |-b a 0||z| w 2 +a 2 +b 2 +c 2 = 1よりw 2 = 1-a 2 -b 2 -c 2 p'= QpQ~ = (w 2 -q・q)p+2(q・p)q+2w(q×p) |w 2 -a 2 -b 2 -c 2 +2a 2 2(ab-wc) 2(ca+wb)||x| =|2(ab+wc) w 2 -a 2 -b 2 -c 2 +2b 2 2(bc-wa)||y| |2(ca-wb) 2(bc+wa) w 2 -a 2 -b 2 -c 2 -2c 2 ||z| |1-2(...