表面法線が(-1,0)の壁に(0.5,0.5)移動しているとします。最終結果を(0,0.5)にしたいので、壁に移動し続けることはできませんが、表面に沿ってスライドします。
どうすればこれを達成できますか?私は持っています
comp_u = n * (maths::dot(dir,n) / maths::dot(n,n));
これにより、衝突面に垂直な方向の成分が得られます。ここで、「n」は衝突面に垂直なベクトルであり、これをキャンセルできます。ただし、壁から離れようとすると、そのコンポーネントがキャンセルされます。つまり、壁から離れることはできません。