昨日、Craig ReynoldsのBoidsに出くわし、その後、Javaでの単純な2Dバージョンの実装を試してみることにしました。私は、コンラッド・パーカーのメモに密接に基づいて、かなり基本的な設定をまとめました。
しかし、私は(私の意見では)かなり奇妙な振る舞いをしています。現在、私のボイドはかなり速くラフなグリッドまたはラティスに移動し、その場でけいれんを起こします。つまり、彼らは少し動き回り、非常に頻繁に回転します。
現在、私は以下を実装しました:
- アラインメント
- 凝集
- 分離
- 速度制限
最初、私のボイドは画面領域全体にランダムに分散され(パーカーの方法とは少し異なります)、それらの速度はすべて画面領域の中心に向けられます(ランダムに初期化された速度でも同じ結果が得られることに注意してください)。速度制限値を変更すると、ボイドがこのパターンに移動する速度のみが変更され、パターンの形成は変更されません。
私が見ているように、これは次のようになります。
- 私が使用しているパラメーターの結果(現在、私のコードはパーカーの擬似コードで説明されているとおりです。レイノルズで説明されている角度と半径で定義される影響範囲はまだ試していません)。
- 実装する必要があるが、気付いていないもの。
- 私が間違っていること。
予想される動作は、レイノルズのボイドページのアプレットで発生することの2次元バージョンに沿ったものになりますが、現在、ボイドを画面に表示する方法は実装していません。
誰かがこれに遭遇したことがありますか?原因および/またはそれを修正する方法についてのアイデアはありますか?問題の動作の.gifを投稿できます。