私は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. cssで作成されたこの三角形は、どのようにして表向きにしますか?
- 3. 三角形の方向(三角形の位置はどこですか)
- 4. Quaternionからの方向ベクトル?
- 5. 三角形のベクトルとストロークの幅を考慮して、三角形に追加された境界線/ストロークをどのように計算できますか?
- 6. 大画面の向きを向きに設定する
- 7. Android:向き/回転角度からの軸ベクトル?
- 8. DOMPDFページの向きが横向きと縦向きの両方
- 9. ルーカス奏オプティカルフロー、方向ベクトル
- 10. 2点と方向ベクトルから角度を計算する
- 11. 2Dオブジェクトを単位ベクトルの方向に向ける
- 12. cordova-cliで構築されたモバイルアプリの横向きの向きはどのように設定しますか?
- 13. 2dベクトルの方向を見てください
- 14. カメラのピッチ/ヨーと方向ベクトル
- 15. 子ビューナビゲーションの前に横向きの向きを扱う方法
- 16. 向きを扱うためのiPhone三角法
- 17. モデル/ビューマトリックスからのOpenGLカメラ方向ベクトル
- 18. 方向ベクトルの方向(単位ベクトル)からの回転行列を作成する方法を
- 19. UIImageViewの向きがプログラムモードで横向きに変更されました
- 20. 矩形の高さをアニメーション化して、上向きではなく下向きにします。
- 21. Kivyウィジェットの向きを横向き/縦向きにする
- 22. 度ベクトルのOpenGLの方向(X、Y、Z)
- 23. Swift&Sprite-Kit:衝突によって設定された方向にスプライトを回転させる方法は?
- 24. PyPyとCPython:大きなパフォーマンス向上が計画されていますか?
- 25. 方向(ベクトル)をR.Aに変換します。スカイフィールドの12月
- 26. 動きのある3Dの三角形の衝突検出
- 27. ラベルがQVBoxLayout内で垂直方向に拡大されます
- 28. 画面の向きが横向きに変更されたときに、画面にスクロールを追加するにはどうすればよいですか?
- 29. 最大12個までのブートストラップスパン列を水平方向に整列させることはできますか?
- 30. Androidで横向きの向きを反転しますか?
うーん、私はあなたに従うかどうか分かりません。三角形のベクトルを正規化してから方向/大きさを減算すると、何もしないように見えます。もう少し詳しく教えていただけますか? – JeanOTF
三角形と大きさ/方向のベクトルは、いずれも3次元です。 – JeanOTF
"正常"と "正規化"は実際には無関係な単語ではないでしょう。私は更新します。 – me22