問題タブ [boids]

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 投票する
2 に答える
5578 参照

algorithm - 群れと群れのアルゴリズムに関する優れたリソースは何ですか?

少し前に、小説Preyを読みました。楽しい SF の領域であることは間違いありませんが、群れ/群れの AI に興味を持ちました。最近、これらのデモの例を reddit でいくつか見てきました。たとえば、Nvidia 飛行機のフロック ビデオChris Benjaminsen のフロック サンドボックス(ソース) などです。

群れや群れの AI を含むいくつかのシミュレーション デモを書くことに興味があります。私は大学で人工知能を取りましたが、群​​れや群れの行動をシミュレートするという主題にアプローチしたことはありません。

代替テキスト
フロッキングサンドボックス

群れ/群れのアルゴリズムに関するより細かい点を学ぶための確かなリソースは何ですか? 誰かがこの分野で何か経験を持っているので、適切な AI の本や出版された論文に関して正しい方向に私を向けることができますか?

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

c# - 2D での XNA 視野

群れに基づく XNA の 2D ゲームに取り組んでいます。私は Craig Reynold のフロック技術を実装しました。そして今、グループにリーダーを動的に割り当てて、ターゲットに向かって誘導したいと考えています。

これを行うには、前に他のエージェントがいないゲーム エージェントを見つけてリーダーにしたいのですが、そのための計算がわかりません。

現在私は持っています:

agentContext.ViewAngle は、適切な効果を得るために試したラジアン値ですが、ほとんどの場合、すべてのエージェントがリーダーとして割り当てられます。

エンティティが別のエンティティの「円錐」ビュー内にあるかどうかを検出するために、誰かが私を正しい方向に向けることができますか?

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

iphone - iO 向けの Boids アルゴリズムのオープン ソース実装はどこにありますか?

質問がすべてを物語っています。私は、Boids の論文で最初に説明された、機能するオープン ソースのアルゴリズム (またはその派生物) の実装を探しています。

0 投票する
4 に答える
4647 参照

java - 群れボイドの行動の問題

昨日、Craig ReynoldsのBoidsに出くわし、その後、Javaでの単純な2Dバージョンの実装を試してみることにしました。私は、コンラッド・パーカーのメモに密接に基づいて、かなり基本的な設定をまとめました。

しかし、私は(私の意見では)かなり奇妙な振る舞いをしています。現在、私のボイドはかなり速くラフなグリッドまたはラティスに移動し、その場でけいれんを起こします。つまり、彼らは少し動き回り、非常に頻繁に回転します。

現在、私は以下を実装しました:

  1. アラインメント
  2. 凝集
  3. 分離
  4. 速度制限

最初、私のボイドは画面領域全体にランダムに分散され(パーカーの方法とは少し異なります)、それらの速度はすべて画面領域の中心に向けられます(ランダムに初期化された速度でも同じ結果が得られることに注意してください)。速度制限値を変更すると、ボイドがこのパターンに移動する速度のみが変更され、パターンの形成は変更されません。

私が見ているように、これは次のようになります。

  1. 私が使用しているパラメーターの結果(現在、私のコードはパーカーの擬似コードで説明されているとおりです。レイノルズで説明されている角度と半径で定義される影響範囲はまだ試していません)。
  2. 実装する必要があるが、気付いていないもの。
  3. 私が間違っていること。

予想される動作は、レイノルズのボイドページのアプレットで発生することの2次元バージョンに沿ったものになりますが、現在、ボイドを画面に表示する方法は実装していません。

誰かがこれに遭遇したことがありますか?原因および/またはそれを修正する方法についてのアイデアはありますか?問題の動作の.gifを投稿できます。

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

algorithm - リーダーに続く昆虫-そのためにボイドアルゴリズムを実装できますか?

昆虫がどのようにリーダーを2次元で追いかけているのかを説明したいと思います。どうすればそれを達成できますか?ボイドアルゴリズムでこれを行うことは可能ですか?あるいは、誰かがその理由のために特別に設計された別のアルゴリズムを知っているのでしょうか?

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

java - Java の Flocking Boid に適した 2D 空間データ構造

私は楽しみのためだけに群がるボイドのシミュレーションに取り組んでおり、それを少し最適化したいと考えています。作業が必要な領域は、特定のボイドの近くでボイドを見つけることです。タスクに適したある種の空間データ構造を実現することが最善の策であると考えています (こちらを参照して、少し下にスクロールしてください)。

何をするにしても、Java でゼロから自分自身を実装します。そうすれば、選択したデータ構造について、多数のライブラリ関数を呼び出しただけの場合よりも多くのことを学ぶことができます。

R-Treeskd trees、およびQuadtreesを認識しています。私の意見では、それらはすべて実行可能なオプションです。しかし、私はこれらのデータ構造の経験がなく、何が私の目的に最も適しているか完全にはわかりません. この規模では何も必要ありません.100万ではなく、おそらく数百のボイド、おそらく最大で1000のボイドを話していますが、最終的にはAndroidフォンで実行する可能性があることを覚えておいてください.

このためのデータ構造(もちろん、上記に限定されません)をお勧めし、代替案よりもそれを選択する正当な理由を教えてください。

はい、この質問を見ました。いいえ、私はその答えに満足していません。理由がまったく示されていません。

ああ、もう1つ-タイトルが言うように、これは厳密に2次元のみです。

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

javascript - JavascriptとHTML5キャンバスを介して背景画像を更新します

Javascriptは、私の強みの1つとはほど遠いものです。したがって、私の質問が多くの皆さんにとって非常に改善されているように思われる場合は、お詫び申し上げます。

JavascriptとHTML5Canvasを介してBoidを実装しようとしています。群れの動作は確立されていますが、アプリケーションは空白の背景ではかなりわかりやすく見えます。

このため、背景として画像を使用しようとしていますが、問題が発生しています。

上記の関数内で背景画像をペイントする方法を知っている人がいる場合は、私に知らせてください:)

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

algorithm - 速度を理解し、Boids アルゴリズムを実装していますか?

そのため、疑似コード hereに基づいて、Brightscript への Boid の移植に取り組んでいます。

関連するデータ構造を理解しようとしています。たとえば、Velocity は単一の値ですか、それとも 3D 値ですか? (つまりvelocity={x,y,z})

疑似コードがこれを混同しているように見えますが、ベクトルと単一値項目の両方を含む方程式が含まれている場合があります。

Velocity が 3 つの値である場合、これは理にかなっていますが、よくわかりません。

それで、私の最初の質問: 上記の疑似コードに基づいて、これは単一のボイドの正しいデータ構造ですか?

どこでpc= 知覚された中心、およびpv= 知覚された速度。

vector_addvector_subvector_div、およびベクトルのブール関数を実装しました。

この疑似コードから始めた理由は、他に読みやすいものを見つけることができなかったからですが、変数ごとにデータ構造が明示的に定義されていないため、まだ多くの疑問が残ります。

(編集)これが私が話していることの良い例です:

両方とも 3D 座標である場合、そうb.position - b[j].positionでない限り、どのように「100 未満」と見なすことができます< {100,100,100}か?

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

python - Python:割り当てエラーの前に参照されたローカル変数

エラーが発生し続けます

UnboundLocalError: 割り当て前に参照されたローカル変数 'new_speedDx'

次の機能を実行しようとしている間:

この関数では、boid1 は 4 つの要素 (xpos、ypos、xvelocity、yvelocity) を持つベクトルで、大文字のすべての変数は定数 (数値) です。これを解決する方法を知っている人はいますか?インターネットで多くの可能な解決策を見つけましたが、何も機能していないようです..

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

python - Python のボイド; 2 つのボイド間の距離の計算

Python でボイドを使って飛行中の鳥の行動をプログラムしようとしています。私はまだ多くを見つけていませんが、現在、2つのボイド間の距離を定義する関数にこだわっています. 式 (a,b) = sqrt( (a_x - b_x)^2 + (a_y - b_y)^2) ) で計算する必要があります。ここで、a と b は、距離を計算する必要がある 2 つのベクトルです。 a_x と b_x はベクトルの x コンポーネントで、a_y と b_y は y コンポーネントです。式のインデックスに関するエラーが発生します。いろいろな方法で解決しようとしましたが、解決方法がわかりません...

これが私がこれまでに得たものです。私はプログラミングに非常に慣れていないので、基本しか知らないので、残りの部分が大丈夫かどうかわかりません.;