問題タブ [collision]

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.

0 投票する
1 に答える
427 参照

c# - 衝突検出バウンス問題c#

衝突検出が機能するようになりましたが、何らかの理由で、プレーヤーは1フレームの地面をイントロし、次のフレームで飛び出して、想定どおりに転倒したようです。

衝突検出に使用するコード

0 投票する
2 に答える
492 参照

hash - urisの効率的なハッシュ関数

文字列の(グローバル)固定サイズIDを構築するためのハッシュ関数を探しています。ほとんどの場合はURIです。

そのはず:

  • 速い
  • 衝突の可能性が低い
  • 〜64ビット
  • 可能であれば、URIの構造を利用しますか?

http://murmurhash.googlepages.com/が良い選択でしょうか、それとももっと適したものはありますか?

0 投票する
1 に答える
487 参照

flash - Flash Actionscript + 衝突時の x & y 座標を取得

2 つの MC が衝突したことを検出するために HitTestPoint を実行していますが、それらが互いに通り抜けることを望んでいません。衝突が発生したときに移動オブジェクトの x、y 座標を見つけ、衝突が発生するたびにその mc の座標をこの x、y に更新することを誰かが提案しました。私はグーグルでしたが、空になりました。以下は私のコードと私が試したことです

}

0 投票する
1 に答える
2078 参照

flash - Actionscript 3 で衝突しているオブジェクトを取得するにはどうすればよいですか?

オブジェクトが衝突しているオブジェクトを知る方法はありますか?... 衝突する他のオブジェクト (ムービークリップ) を識別できる「ボックス オブジェクト」をフラッシュで作成したいと考えています。たとえば、「フィールド」(エンジンまたはワールド) にボックスをドロップし、その中に何かを入れた場合、ボックスが衝突しているオブジェクトの種類をボックスに知らせたいと思います。箱がどのオブジェクトと衝突するか事前にわからないため、hitTestObject を使用できません。

私が達成したいことの大まかな疑似コードは次のとおりです。

上記の例の UNKNOWN_OBJECT は、必ずしも同じデータ型ではありません。

0 投票する
1 に答える
1425 参照

c++ - Box2D 衝突検出の失敗

最近、Box2D バージョン 2.1 を Allegro5 と組み合わせて使用​​し始めました。現在、地面と4つのボックスでテストを構築しました。3つの箱が積み上げられ、もう1つの箱がつぶれてひっくり返る。このデモンストレーション中に、2 つの不具合があることに気付きました。

1 つは、Box2D "SetAsBox( width, height )" でボックスを作成すると、allegro を使用して画面に描画される通常のボックスの半分のサイズしか得られないことです。例: Box2D で、(15, 15) のサイズのボックスを作成します。allegro を使用して形状を描画するときは、y に -15 のオフセットを作成し、形状をそのサイズの 2 倍にスケーリングする必要があります。

もう 1 つの問題は、衝撃によってボックスが回転している間の衝突検出中です。ほとんどの正方形は地面にぶつかりますが、一部の正方形は高さが地面からオフセットされて浮いています。

これが私の箱を作るためのコードです:

編集: 最初の問題を説明してくれた Chris Burt-Brown に感謝します。2 番目の問題については、良いアイデアでしたが、解決しませんでした。あなたが私に示した両方の丸め方法を試しました。

編集:2番目の問題に対する答えを見つけたと思います。Allegro には OpenGL とは異なる座標系があることが判明しました。その結果、-gravity の代わりに +gravity を実行する必要があり、Box2D が不安定になり、動作がおかしくなりました。

編集:悪いことに、それが問題だと思っていましたが、何も変わらなかったことがわかりました。

0 投票する
1 に答える
2339 参照

flash - Box2dAs3コンタクトリスナーの問題

box2das3b2ContactListenerクラスに問題があります。b2ContactListenerを拡張し、PostSolveメソッドをオーバーライドするContactListenerという名前のクラスがあります。PostSolveは、2つのパラメーターを取ります。1つは、接触している2つのオブジェクトに関する情報を保持するcontact、もう1つは、接触に関する情報を保持するインパルスです。インパルスパラメータを使用して、2つのオブジェクトがどれだけ強く当たるかを決定し、それに応じてダメージを適用します。

問題は次のとおりです。円形のものを作成し、それを地面として持っている静止体上でゆっくりと転がしてから、かなり大きなオブジェクトを地面の任意の場所にドロップすると、移動中の円が接触します。ただ転がるだけで大​​きくなる衝動。これにより、回転する円形のオブジェクトが壊れてはいけないときに壊れます。

まるで静止した体を揺さぶり、数百メートル離れた物体に甚大な被害を与えるかのようですが、それは円にのみ影響します。

誰かが状況に光を当てることができますか?これは既知の問題ですか?回避策?

Box2DAs3バージョン2.1aを使用しています。

更新:体が多くのダメージを与えるこの奇妙な状態に入ると、それに触れる円は大量の大きな衝動を受け取ります。円形でないものが体に接触すると、問題はなくなります。また、この問題は静的オブジェクトだけでなく、動的および運動学的にも発生します。

アップデート:問題をさらに絞り込みました。大きなオブジェクトの平らなエッジが私の地面のオブジェクトに当たると、コンタクトリスナーはびっくりして、の質量インパルスを適用します。円だけでなく、目覚めていて地面に接触しているオブジェクトは、大量のPostSolveメソッド呼び出しを受け取ります。円が地面を転がっている間に、11ピクセル×11ピクセルのサイズの箱を地面に落としてみました。バグは発生しませんでした。ただし、ボックスが12 x 12の場合、バグは発生します。また、12×12〜0.1度の大きさの箱を回転させてもバグは発生しません。再現するには、十分な大きさの接触領域が必要です。また、ボックスの密度は何にも影響しません。また、ボックスが幅10、高さ100の長方形である場合、バグが再現されます。オブジェクトのサイズがバグを引き起こしているようですが、

更新:これは、私が作成したBox2Dフォーラムの投稿へのリンクです。ソース付きのswfの例があります。

リンク

0 投票する
1 に答える
817 参照

actionscript-3 - AS3 + papervision3d+jiglibの衝突ボックス

以下のサイトで説明されている「チュートリアル」を再現しようとしています。シーンで跳ね回る5つのダイスです。しかし、私は最初から立ち往生しています:)

papervision3d-jiglib-dice-demo

私の問題はバウンディングボックスです。ステージの大きさに合わせて、床と壁が4つある箱を作りたいです。カメラのズーム/フォーカスを使用して、適切なサイズを取得できます。しかし、問題はサイコロがそれを通過することです。

どうすれば4つの壁を構築し、力を加えたときにサイコロが壁を通過しないようにすることができますか?

私は次のソースで解決策を試しましたが、どういうわけかサイコロは通り抜け続けます:(

投げる-サイコロ-with-the-jiglib-physics-engine-and-away3d

誰かがそれを行う方法を知っていますか?または、サイコロを画面に表示したままにするためのより良い方法はありますか?

0 投票する
2 に答える
889 参照

md5 - MD5 は、4 バイトおよび 8 バイトのキーを 16 バイトの値にハッシュします。衝突の可能性は?

ハッシュしている 2 32 個の 4 バイト キーがあります。衝突する確率は?

8 バイトのキーが 2 64 個ある場合(実際にはすべてのキーを保存しているわけではありませんが、最悪のケースを知りたいです)?

0 投票する
3 に答える
35495 参照

data-structures - 2D 衝突検出のための四分木

2D 衝突検出に四分木を使用しようとしていますが、実装方法に少し困惑しています。まず、4 つのサブツリー (各象限を表す 1 つ) と、1 つのサブツリーに収まらないオブジェクトのコレクションを含む 4 つ木があります。

ツリー内のオブジェクトの衝突をチェックするときは、次のようにします ( 2D 衝突検出のための QuadTree のおかげです)。

  1. 現在のノード内のオブジェクトとの衝突についてオブジェクトをチェックします。
  2. スペースがオブジェクトと重なっているサブツリーについては、再帰します。

四分木ツリー内のすべての衝突を見つけるには:

  1. 現在のノード内の各オブジェクトを、現在のノード内の他の各オブジェクトに対してチェックします。
  2. 各サブツリーに対して現在のノードの各オブジェクトをチェックします。

四分木に挿入するには:

  1. オブジェクトが複数のサブツリーに収まる場合は、現在のノードに追加して戻ります。
  2. それ以外の場合は、それを含むサブツリーに再帰します。

四分木を更新するには:

  1. 各サブツリーに再帰します。
  2. 現在のノードのいずれかの要素が現在のツリーに完全に収まらなくなった場合は、それを親に移動します。
  3. 現在のノードのいずれかの要素がサブツリーに収まる場合は、それをサブツリーに挿入します。

これでいいですか?改善できますか?

0 投票する
3 に答える
1707 参照

java - 2d ボール衝突問題: エネルギー保存なし

さまざまな半径と質量を持つボールが完全に弾力性があり摩擦のない環境で跳ね返る単純な物理シミュレーションを作成しようとしています。私はこのリソースに従って独自のコードを書きました: http://www.vobarian.com/collisions/2dcollisions2.pdfそして、ここからコードをテストしました:ボールからボールへの衝突 - 検出と処理

質問が編集されました

Rick Goldstein と Ralph の助けを借りて、コードを動作させることができました (タイプミスがありました..)。助けてくれてどうもありがとう。ただし、他のアルゴリズムが機能しない理由についてはまだ混乱しています。ボールは正しい方向に跳ね返りますが、システムの総エネルギーは決して保存されません。画面上の静的な位置でボールが点滅し始めるまで、速度はますます速くなります。私が書いたコードよりもはるかに簡潔なので、実際にこのコードを自分のプログラムで使用したいと思っています。

これが私が書いた関数型アルゴリズムです (ただし、最初のビットは別のソースから取得しました)。それはバブルクラスにあります:

そして、これが機能しないものです

何か見つけたら教えてください。ありがとう