Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 以编程方式在Anylogic中绘制图像_Image_Drawable_Anylogic - Fatal编程技术网

Image 以编程方式在Anylogic中绘制图像

Image 以编程方式在Anylogic中绘制图像,image,drawable,anylogic,Image,Drawable,Anylogic,有没有办法用Anylogic以编程方式绘制图像?到目前为止,我找到的唯一方法是将Image元素添加到项目中,从文件系统中指定它的映像,然后在运行时从缓存中获取它(例如getPresentation().getPanel().getImageCache().getCachedImage(这个,“/walking\u-phants/”,“Altitudes.PNG”,500500);)并绘制到它 但这似乎是在驴子上画画,以防你需要创建可变大小的图像。我一直在寻找调色板中的一些可绘制元素,但似乎缺少此

有没有办法用Anylogic以编程方式绘制图像?到目前为止,我找到的唯一方法是将Image元素添加到项目中,从文件系统中指定它的映像,然后在运行时从缓存中获取它(例如
getPresentation().getPanel().getImageCache().getCachedImage(这个,“/walking\u-phants/”,“Altitudes.PNG”,500500);
)并绘制到它


但这似乎是在驴子上画画,以防你需要创建可变大小的图像。我一直在寻找调色板中的一些可绘制元素,但似乎缺少此基本功能。

您可以使用复制矩形。要更改复制的数量,请使用名为numberOfReplications的int类型变量。将其粘贴到矩形的“复制”属性中,您可以动态更改该变量


干杯

不确定你的目标是什么?你们想要实现什么?我需要动态地为代理绘制一些背景“地图”,以显示有关世界的信息。例如,在Anylogic的示例中,它们显示动态生成的地形高度图。为此,作者使用pallete中的Image元素和一些空的PNG文件。然后他从缓存中加载这个图像,就像我在问题中提到的那样,并绘制它的图形。因此,显然需要一些通用的可绘制元素。需要伪造一些空图像,然后从缓存中获取它以获得画图的能力似乎是一种可怕的过度使用,并且缺少所需的功能。好的,抱歉,但我仍然不太清楚。根据某些模型条件,是否要显示多个背景图像?因为图像对象可以容纳任意数量的图像(在设计时在属性中预加载)。然后,您可以通过索引访问它们来切换哪个应该可见。你试过了吗?如果你手边有任何逻辑,只要看看流浪大象的示例模型,更准确地说是运行时的地图(植被、沙子、水)渲染过程。不幸的是,我不知道如何更好地描述我想要的东西——只需从pallete中插入一些简单的元素,就可以提供编程绘图功能,而无需从缓存中加载一些伪空白图像——就像上面提到的示例中所做的那样。看一看,甚至不知道他们为什么使用该图像。对于这种背景,可以使用动态着色的复制矩形。在性能上也会更容易。但是当您需要根据模拟进度或模拟过程中的用户输入添加更多矩形时,情况会怎样呢?我相信,在模拟开始后,您无法通过编程方式添加更多的矩形。您始终可以通过编程方式创建任何对象,因为它们都只是Java。对于矩形,请选中“确定”,但您必须以某种方式将其添加到主代理类,以便它将被绘制和处理。我已经检查了生成的Java代码,没有任何迹象表明这可以在运行时使用提供的API完成。这是肯定的。您需要手动将其添加到演示文稿中,这是正确的。值得检查所有支持和文档(或通过尝试和错误),我永远记不住这一点,抱歉:-(