そのため、現在、3D ベクトル (加速度計から取得) をオブジェクトの向き (オブジェクト ジャイロスコープから取得した角速度を統合して取得し、3D ベクトルとして返す) に投影しようとしています。しかし、私はそれを行う方法が本当にわかりません。
現在、Excel スプレッドシートを使用して、作業中のソフトウェアにインポートされるテスト データから期待できる結果を把握しています。
そのため、現在、3D ベクトル (加速度計から取得) をオブジェクトの向き (オブジェクト ジャイロスコープから取得した角速度を統合して取得し、3D ベクトルとして返す) に投影しようとしています。しかし、私はそれを行う方法が本当にわかりません。
現在、Excel スプレッドシートを使用して、作業中のソフトウェアにインポートされるテスト データから期待できる結果を把握しています。
ベクトルvを別のベクトルpに射影するのは、前者と単位長ベクトルn pの方向の内積を計算するのと同じくらい簡単です。
v p = ( v . n p ) n p = ( v . p / || p || 2 ) p
コンポーネント的には次のとおりです。
// Dot product of v and p
vdp = v.x*p.x + v.y*p.y + v.z*p.z
// Square norm of p
p2 = p.x*p.x + p.y*p.y + p.z*p.z
// Projection
vp.x = (vdp / p2) * p.x
vp.y = (vdp / p2) * p.y
vp.z = (vdp / p2) * p.z
投影自体の長さはvです。n p、これは に等しいvdp / sqrt(p2)
。