白黒の画像 (ピクセル バッファ) があるとします。したがって、各ピクセルは黒または白 (グレー スケールではありません) のいずれかになります。
その画像のどこかに、緑色の点を配置します。目的のレンダリングのために半径 n を持っているかもしれませんが、実際にはただの点です。ランダムに選択された方向と速度をドットに与え、それを動かし始めます。画像がすべて白いピクセルである場合、ドットは画像の端で跳ね返り、画像の周りを無限にさまよいます。これは非常に簡単です...ドットのベクトルの上昇または実行を逆にするだけです。
次に、画像に黒いピクセルの塊がいくつかあるとします。ドットがこれらの黒いピクセルの塊に遭遇すると、反射角度を計算する必要があります。これは、私のスケッチのように、黒いピクセルが固定された勾配を持つことも非常に簡単です (青い X は黒いピクセルを表します)。青い X の傾きを見つけて、新しいベクトルを簡単に計算できます。
しかし、黒いピクセルが本当に不親切な表面を形成する場合はどうでしょうか? この角度を理解するためのいくつかのアプローチは何ですか?
これは私が興味を持っているテーマです。
この種の目的のために存在するいくつかのアルゴリズムがあるに違いありませんが、私は学校でそれらに出くわしたことはありません. 私はこれをどのようにコーディングするかを尋ねているのではなく、これを行うためのアルゴリズムを作成する方法を尋ねています。試してみたいアイデアがいくつかありますが、これを行うための標準的な方法がいくつかある場合は、それらについて学びたいと思います。
明らかに、白黒から始めて RGBA に移行したいと考えています。
この種の主題に関する参考資料を探しています。ウェブサイト、書籍、その他の参考文献は大歓迎です。
また、適切な StackOverflow タグが他にある場合は、お知らせください。
どうもありがとう!
編集************ より多くの写真と情報
「不親切な表面」の意味がよくわからなかったのかもしれません。前の図では、青い X がたまたま線になっていました。線ではなく、奇妙な形の場合を想像してみてください。
緑のピクセルが 2 の勾配で移動するところから始めます。そのベクトルが 1 フレームあたり 12 ピクセルのベクトルであるとします。次のような投影パスがあります。
しかし、親しみやすい素敵なセリフの代わりに、次のようなものがあるとします。
これがボールといくつかの壁だったらどうなるか、ちょっと想像できます。