問題タブ [collision-detection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 2D での衝突検出に使用される技術のリソースは?
2D 環境での衝突検出に使用するアルゴリズムまたは技術を説明している最良のリソース (書籍または Web ページ) は何だと思いますか?
より洗練された効率的なゲームを作成するためのさまざまなテクニックを学びたいと思っています。
2d - スプライト間の衝突を検出する最良の方法は?
2Dゲームスプライトの衝突を検出するための最良の方法は何ですか?私は現在アレグロとG++で働いています
math - 3D での点と三角形の衝突検出
次の物理シミュレーションで浮動小数点エラーを修正するにはどうすればよいですか。
- 原点(x、y、z)、
- 力が適用された後の目的の点 (x'、y'、z')。
- 辺 BC を共有する 2 つの三角形 (A, B, C) と (B, C, D)
衝突検出にこの方法を使用しています:
私が抱えている問題は、技術的には常にどちらか一方と衝突する必要があるにもかかわらず、点が線 BC に非常に近い浮動小数点演算の灰色の領域に入ることがあるということです。彼らはエッジを共有しています。これが発生すると、ポイントは 2 つのエッジ共有三角形の間を通過します。コードの 1 行を(!)でマークしました。これは、変更を加える必要があると思われるためです。
非常に限られた状況で機能する 1 つのアイデアは、エッジ テストをスキップすることです。三角形を効果的に平面に変えます。これは、メッシュが凸包である場合にのみ機能しますが、凸形状を作成する予定です。
私は特に、前後のすべてのテストで内積と三角形の法線を使用しています。
collision-detection - 誰かがピクセルごとの衝突検出について説明できますか?
誰かがそれの賛否両論とそれに関連する数学を説明できますか?
performance - 2D ポイントがポリゴン内にあるかどうかを判断するにはどうすればよいですか?
ヒットテスト (例) で使用するために、ポリゴン アルゴリズム内に高速な 2D ポイントを作成しようとしていますPolygon.contains(p:Point)
。効果的なテクニックの提案をいただければ幸いです。
data-structures - オブジェクトを移動するための空間データ構造?
多くの移動オブジェクト (球体、三角形、ボックス、点など) を処理するのに最適なデータ構造は何だろうと考えていました。Nearest Neighbor と Collsion detection という 2 つの質問に答えようとしています。
伝統的に、R ツリーのようなデータ構造は最近傍クエリに使用され、Oct/Kd/BSP は静的オブジェクトまたは非常に少数の移動オブジェクトを扱う衝突検出問題に使用されることを認識しています。
他にもっと良いものがあることを願うばかりです。
私はすべての助けに感謝します。
java - Java での 2 つの画像間の衝突検出
私が書いているゲームには、プレイヤーと敵の 2 人のキャラクターが表示されています。次のように定義されています。
次に、次のように呼び出します。
キーボードで player() を動かすことはできますが、2 つの間の衝突を検出しようとすると途方に暮れます。多くの人が Rectangles を使用すると言っていますが、初心者の私には、これを既存のコードにどのようにリンクすればよいかわかりません。誰か私にアドバイスをくれる人はいますか?
graphics - ボール同士の衝突 - 検出と処理
スタック オーバーフロー コミュニティの助けを借りて、かなり基本的でありながら楽しい物理シミュレーターを作成しました。
マウスをクリックしてドラッグすると、ボールが発射されます。それは跳ね返り、最終的に「床」で止まります。
追加したい次の大きな機能は、ボールとボールの衝突です。ボールの動きは、x と y の速度ベクトルに分割されます。重力 (ステップごとに y ベクトルの小さな減少) があり、摩擦 (壁との衝突ごとに両方のベクトルの小さな減少) があります。ボールは正直、驚くほどリアルに動きます。
私の質問には2つの部分があると思います:
- ボール同士の衝突を検出する最良の方法は何ですか?
各ボールを反復処理し、半径が重複しているかどうかを確認するために他のすべてのボールをチェックする O(n^2) ループがありますか? - ボール同士の衝突を処理するには、どの方程式を使用すればよいですか? 物理学 101
2 つのボールの速度 x/y ベクトルにどのように影響しますか? 2 つのボールが飛び出した結果の方向は? これを各ボールにどのように適用しますか?
「壁」の衝突検出とその結果のベクトルの変更の処理は簡単でしたが、ボールとボールの衝突ではさらに複雑になります。壁の場合、適切な x または y ベクトルの負の値を取るだけで、正しい方向に進むことができました。ボールに関しては、そうではないと思います。
いくつかの簡単な説明:簡単にするために、今のところ完全に弾性的な衝突で問題ありません。また、すべてのボールは現在同じ質量ですが、将来変更する可能性があります。
編集:私が有用だと思ったリソース
ベクトルを使用した 2D ボールの物理学: Trigonometry.pdf を使用しない 2 次元の衝突
2D ボールの衝突検出の例:衝突検出の追加
成功!
ボールの衝突検出と応答がうまく機能しています。
関連コード:
衝突検出:
これにより、すべてのボール間の衝突がチェックされますが、冗長なチェックはスキップされます (ボール 1 がボール 2 と衝突するかどうかをチェックする必要がある場合は、ボール 2 がボール 1 と衝突するかどうかをチェックする必要はありません。また、それ自体との衝突のチェックもスキップします)。 )。
次に、私のボール クラスには、collliding() メソッドと resolveCollision() メソッドがあります。
ソース コード:ボール トゥ ボール コライダーの完全なソース。
この基本的な物理シミュレーターを改善する方法について誰か提案があれば教えてください! まだ追加していないことの 1 つは、ボールがよりリアルに転がるように角運動量です。他の提案はありますか?コメントを残す!
actionscript-3 - 斜めの壁とボールの弾性衝突
斜めの壁に当たったボールの反射角の計算に問題があります。このチュートリアルから取り上げたアルゴリズムを使用しています。次のようになります (Actionscript 3 の場合)。p1 は現在の速度ベクトルで、p2 は壁の法線です。
この関数は新しい速度ベクトルを返します。これは、垂直な壁との衝突では正しく行われますが、斜めの壁では正しく行われません。ボールは両側から壁に当たることがあります (つまり、法線が反対方向に突き出ている可能性があります)。
誰でも私のエラーを見つけることができますか? または、より良いアルゴリズムを提案しますか?
geometry - 円と長方形の衝突検出 (交差)
円と長方形が 2D ユークリッド空間で交差しているかどうかを確認するにはどうすればよいですか? (つまり、従来の 2D ジオメトリ)