移動エージェントが移動ノードを移動しようとしています。これは私のセットアップです。エージェントが移動ノードを移動する
- エージェント(人/人)は、ランダムにスペースに配置されています。
- ノード(ちょうど別の種類のエージェント)もスペースにランダムに配置されています。
- それぞれの人はターゲットノードを定義します。人はのナビゲーションノードを通してそのターゲットノードに移動する必要があります。
これは私が何をしたいです:
- 各エージェントは、ターゲット・ノードに向かって回転します。
- 各エージェントには、エージェントが移動先を見つけられなかった場合に増加するビジョン範囲があります。
各エージェントは、最も近いナビゲーションノードに移動し、再度検索処理を開始します。
エージェントは、最も近いナビゲーションノードがターゲットノードである場合に停止します。その後、エージェントが到着しました!
私はAnylogicにおけるビジョン範囲をプログラムする方法を確認していない:
は、私が使用してエージェントの回転を設定します。何か案は?
私の質問は:
double r = Math.atan2(targetNode.getY() - this.getY(),
targetNode.getX() - this.getX());
this.setRotation(r);
例:http://agiltools.com/blogsp/2016/06/ – sdaza
何らかの理由でcontains()メソッドが機能しません。私のエージェントは常に回転しているので、おそらく相対座標を定義するときに間違ったことをしています。 – sdaza
私はあなたのビジョン範囲のソリューションを実装しようとしましたが、ナビゲーションノードの取得にはまだ問題があります。このコードを使用してポリライン内のノードを取得しています(agentVision)。ここでは例を示します:http://dl.getdropbox.com/u/18116710/ExampleVisionPolyLine.alp – sdaza