2016-04-13 9 views
0

プログラムでAnylogicで画像を描画する方法はありますか?私が今までに見つけた方法は、Image要素をプロジェクトに追加し、ファイルシステムからイメージを指定し、実行時にキャッシュから取得して(例えばgetPresentation().getPanel().getImageCache().getCachedImage(this, "/wandering_elephants/", "Altitudes.PNG", 500, 500);)、描画します。プログラムでAnylogicに画像を描画

しかし、可変サイズの画像を作成する必要がある場合は、これはペイントのようです。私はパレットでいくつかのDrawable要素を探していましたが、この基本的な機能が欠けているようです。

+0

実際にあなたが目指していることはありませんか?あなたは何を達成したいですか? – Benjamin

+0

私はエージェントが世界に関する情報を表示するための背景の "マップ"を動的に描画する必要があります。例えば、AnylogicのWandering elephantsの例では、動的に生成された地形の高さマップを示しています。これを行うには、PalleteのImage要素を空のPNGファイルとともに使用します。それから彼は私の質問に記載されているようにキャッシュからこの画像を読み込み、グラフィックスに描画します。だから明らかにいくつかの一般的なdrawable要素が必要です。いくつかの空のイメージを偽造し、キャッシュからそれを得るだけで、描画する能力を得ることは、ひどい過度の必要性と必要な機能の欠如のように思えます。 –

+0

申し訳ありませんが、私はまだかなり明確ではありません。いくつかのモデル条件に応じて、いくつかの背景画像を表示しますか? Imageオブジェクトは必要な数の画像を保持できます(プロパティのデザイン時にプリロードされます)。次に、索引でアクセスするものを切り替えることができます。それを試しましたか? – Benjamin

答えて

0

複製された四角形を使用できます。複製の回数を変更するには、numberOfReplicationsという名前のint型の変数を使用します。あなたの四角形の "複製"プロパティにそれを貼り付け、その変数を動的に変更することができます。

歓迎

+0

しかし、シミュレーション中のシミュレーション進捗やユーザー入力に基づいて長方形を追加する必要がある状況はどうですか?私は、シミュレーションが始まった後、プログラムで矩形を追加することはできないと信じています。 –

+0

すべてのオブジェクトをプログラムとして作成することができます。長方形の場合は、http://www.anylogic.com/anylogic/help/index.jsp?topic=/com.xj.anylogic.help/html/javadoc/com/anylogic/engine/presentation/ShapeRectangle.html – Benjamin

+0

を確認してください。もちろん、メインエージェントクラスに何らかの形で追加して、描画して処理する必要があります。私は、提供されたAPIを使用して実行時にこれを行うことができるという兆候なしに、生成されたJavaコードを検査しました。 –