2016-04-13 22 views
0

是否有任何方法以編程方式在Anylogic中繪製圖像?目前爲止,我發現的唯一方法是將Image元素添加到項目中,從文件系統指定其圖像,然後在運行時從緩存中獲取它(例如getPresentation().getPanel().getImageCache().getCachedImage(this, "/wandering_elephants/", "Altitudes.PNG", 500, 500);)並將其繪製到該圖像。以編程方式在Anylogic中繪製圖像

但是,這似乎是在情況下,你需要創建可變大小的圖像的屁股油漆。我一直在尋找調色板中的一些Drawable元素,但似乎缺少這個基本功能。

+0

不確定你在瞄準什麼?你想實現什麼? – Benjamin

+0

我需要爲代理動態繪製一些背景「地圖」以顯示有關世界的信息。例如,在Anylogic中的漫遊大象示例中,它們顯示動態生成的地形的高度圖。爲此,作者使用一些空的PNG文件使用來自調色板的圖像元素。然後,他從我的問題中提到的緩存中加載此圖像並繪製到其圖形上。所以顯然需要一些通用的可繪製元素。需要僞造一些空的圖像,然後從緩存中獲取它以獲取繪製能力看起來像一個可怕的矯枉過正和缺乏所需的功能。 –

+0

好的,抱歉,但我還不太清楚。根據某些模型條件,是否有多個背景圖像需要顯示?因爲Image對象可以容納儘可能多的圖像(在設計時在屬性中預加載)。然後你可以切換哪一個應該是可見的,通過索引訪問它們。你嘗試過嗎? – Benjamin

回答

0

您可以使用複製的矩形。要更改複製次數,請使用名爲numberOfReplications的int類型變量。將其粘貼到矩形的「複製」屬性中,然後可以動態更改該變量。

歡呼聲

+0

但是在模擬過程中需要根據模擬進度或用戶輸入添加更多矩形的情況呢?我相信你不能在模擬開始後以編程方式添加更多的矩形。 –

+0

您可以始終以編程方式創建任何對象,因爲它全部只是Java。對於矩形,請查看http://www.anylogic.com/anylogic/help/index.jsp?topic=/com.xj.anylogic.help/html/javadoc/com/anylogic/engine/presentation/ShapeRectangle.html – Benjamin

+0

當然,但你必須以某種方式將其添加到主代理類,以便它將被繪製和處理。我檢查了生成的Java代碼,沒有任何跡象表明這可以在運行時使用提供的API來完成。可以肯定的是 –

相關問題