2

白黒の画像 (ピクセル バッファ) があるとします。したがって、各ピクセルは黒または白 (グレー スケールではありません) のいずれかになります。

その画像のどこかに、緑色の点を配置​​します。目的のレンダリングのために半径 n を持っているかもしれませんが、実際にはただの点です。ランダムに選択された方向と速度をドットに与え、それを動かし始めます。画像がすべて白いピクセルである場合、ドットは画像の端で跳ね返り、画像の周りを無限にさまよいます。これは非常に簡単です...ドットのベクトルの上昇または実行を逆にするだけです。

次に、画像に黒いピクセルの塊がいくつかあるとします。ドットがこれらの黒いピクセルの塊に遭遇すると、反射角度を計算する必要があります。これは、私のスケッチのように、黒いピクセルが固定された勾配を持つことも非常に簡単です (青い X は黒いピクセルを表します)。青い X の傾きを見つけて、新しいベクトルを簡単に計算できます。

しかし、黒いピクセルが本当に不親切な表面を形成する場合はどうでしょうか? この角度を理解するためのいくつかのアプローチは何ですか?

ここに画像の説明を入力

これは私が興味を持っているテーマです。

この種の目的のために存在するいくつかのアルゴリズムがあるに違いありませんが、私は学校でそれらに出くわしたことはありません. 私はこれをどのようにコーディングするかを尋ねているのではなく、これを行うためのアルゴリズムを作成する方法を尋ねています。試してみたいアイデアがいくつかありますが、これを行うための標準的な方法がいくつかある場合は、それらについて学びたいと思います。

明らかに、白黒から始めて RGBA に移行したいと考えています。

この種の主題に関する参考資料を探しています。ウェブサイト、書籍、その他の参考文献は大歓迎です。

また、適切な StackOverflow タグが他にある場合は、お知らせください。

どうもありがとう!

編集************ より多くの写真と情報

「不親切な表面」の意味がよくわからなかったのかもしれません。前の図では、青い X がたまたま線になっていました。線ではなく、奇妙な形の場合を想像してみてください。

緑のピクセルが 2 の勾配で移動するところから始めます。そのベクトルが 1 フレームあたり 12 ピクセルのベクトルであるとします。次のような投影パスがあります。 ここに画像の説明を入力

しかし、親しみやすい素敵なセリフの代わりに、次のようなものがあるとします。 ここに画像の説明を入力

これがボールといくつかの壁だったらどうなるか、ちょっと想像できます。

4

2 に答える 2

0

ボールとランダムに生成された背景で似たようなことをしています。

フィルターとエッジ検出は非常に技術的ですが、5*5 または 3*3 グリッドを使用する他のすべてのプロセスは同様に難しいようです。

ただし、これを回避する安価な方法があると思います。ボールが任意の方向に移動すると仮定すると、ボールのすべてのリーディング エッジ (半円) をスキャンします。衝突が発生するボールの端に近づくほど、衝突は垂直に近くなります。繰り返しますが、これにより背景の法線を簡単に推測できるはずです。そこから答えはかなり単純です

于 2014-11-26T20:31:35.100 に答える