私はTriangle-> AABB衝突アルゴリズムを持っており、AABBが衝突した三角形を戻しています。私は三角形の3つのベクトルを期待していましたが、動きの方向/大きさによって偏向されたベクトルが決まるので、角度をつけて壁に対して走ったときに、衝突角に応じて遅く動きますが、壁。これは、衝突がないときに移動するだけで、粘着性の衝突問題を取り除く。どんな提案や参考資料も大歓迎です!ありがとう。どのように方向/大きさベクトルと衝突した三角形に基づいて方向/大きさベクトルを偏向できますか?
1
A
答えて
0
速度の成分を三角形の法線に沿って削除します。
考え方は、動きを三角形の中に移動する部分と残りの部分(垂直方向になる)として表現できるということです。残りの部分だけを動かすと、動きによって三角形に近づくことはなくなります(さらに、衝突を検出してはいけません)。擬似コードで
:まっすぐで動作しているとき、そうすることは非常に迅速にあなたが壁に沿ってスライドさせると同じように、これは意図的に、動きベクトルの大きさを保持しないことを
// v := velocity vector of moving object
// p[3] := points that make up the triangle
triangle_normal = cross(p[2]-p[0], p[1]-p[0])
problematic_v = project(v, onto=triangle_normal)
safe_movement = v - problematic_movement
注意。
さらに詳しい情報や良い画像については、GamasutraのPool Hall Lessons: Fast, Accurate Collision Detection Between Circles or Spheresをご覧ください。あなたは球を使用していませんが、あなたは本質的に完全なプラスチック(衝突しないので衝突)をしています。
0
まず、大きさ/方向をベクトルに変換します(はるかに便利です)。
そして(C++):
float towards=dot(velocity,norm); // velocity component into triangle
if(towards<0) // is moving into triangle
velocity-=towards*norm; // remove component
それが三角形に移動できません。 towards<0
は、通常の状況に応じて逆にする必要があります。それを押し出す春の力を持っていることもうれしいです。
+0
私は両方の提案を試みましたが、残念なことにこれらのソリューションのどちらも私のために働いていませんでした。私は推測し続ける必要があります – JeanOTF
関連する問題
- 1. Rubyで方向と大きさを渡してベクトルを作成する
- 2. 位置ベクトルに速度ベクトルを追加すると、速度ベクトルは無限大の方向に向かう
- 3. ThreeJS、クリックされた方向に向かってベクトルを得る
- 4. cssで作成されたこの三角形は、どのようにして表向きにしますか?
- 5. ベクトルが方向(スウィフト)に向かって拡大するとベクトルが交差する場所
- 6. Quaternionからの方向ベクトル?
- 7. 三角形の方向(三角形の位置はどこですか)
- 8. 大画面の向きを向きに設定する
- 9. 単一ベクトルに格納された三角形隣接行列の順方向および逆方向のインデックス付け
- 10. 2つの大きな列は、水平方向と垂直方向に中央に配置されます
- 11. 方向がロックされているときにデバイスの向きを聞く
- 12. SVGを使用して既存のコードから大きな上向き三角形を生成
- 13. 剛体の向きが目標向きに近づいているかどうかを確認する方法
- 14. 三角形のベクトルとストロークの幅を考慮して、三角形に追加された境界線/ストロークをどのように計算できますか?
- 15. DOMPDFページの向きが横向きと縦向きの両方
- 16. コントローラと衝突した後のオブジェクトの向きが変わる
- 17. 縦向きツールバーを横向きにして縦向きにして縦向きにするにはどうすればいいですか?
- 18. CSS | divの最後に右向き三角形を追加
- 19. どのように私はTHREE.AxisHelperの軸から方向(単位ベクトル)を知ることができますか?
- 20. ルーカス奏オプティカルフロー、方向ベクトル
- 21. cordova-cliで構築されたモバイルアプリの横向きの向きはどのように設定しますか?
- 22. 2Dオブジェクトを単位ベクトルの方向に向ける
- 23. Android:向き/回転角度からの軸ベクトル?
- 24. 2点と方向ベクトルから角度を計算する
- 25. Spriteキットの片方向プラットフォームの衝突
- 26. オーバーレイを上向きに拡大する
- 27. Unity C#の衝突と方向...?私は右方向に移動し、このコードを使用してい
- 28. numpy:水平方向にベクトルをブロードキャスト
- 29. 子ビューナビゲーションの前に横向きの向きを扱う方法
- 30. SVGで指定された方向に矩形を拡大縮小できますか?
うーん、私はあなたに従うかどうか分かりません。三角形のベクトルを正規化してから方向/大きさを減算すると、何もしないように見えます。もう少し詳しく教えていただけますか? – JeanOTF
三角形と大きさ/方向のベクトルは、いずれも3次元です。 – JeanOTF
"正常"と "正規化"は実際には無関係な単語ではないでしょう。私は更新します。 – me22