在任意逻辑参数变化实验中显示模拟进度百分比

Posted

技术标签:

【中文标题】在任意逻辑参数变化实验中显示模拟进度百分比【英文标题】:Show a percentage of progress of simulation in anylogic parameter variation experiment 【发布时间】:2021-08-24 19:45:28 【问题描述】:

我目前正在做一个参数变化实验。我想显示每个模拟的进度条(类似于任何逻辑“并行运行的进度”提供的动画),它将计算为根(模拟)中经过的天数超过将模拟的总天数。我无法访问该信息,因为我只能选择在模拟运行之前和之后进行编码,而不是介于两者之间(并且事件不是一个选项)。我该如何手动编程?

提前致谢, 调频

注意:我要的是EACH模拟的进度条,不是实验的一般进度。

【问题讨论】:

【参考方案1】:

使用以下方法计算模型中的值:

double totalDays = getEngine().getStopTime(DAY) - getEngine().getStartTime(DAY);
double progressSoFar = time(DAY) / totalDays; // ratio between 0 and 1

把它放在一个函数 getProgress 返回 progressSoFarMain

现在在Main 上有一个定期事件,将值“推”到实验。这可以使用类型转换来完成:

if (getExperiment() instanceof ParameterVariation) 
    ((ParameterVariation)getExperiment()).myText.setText(getProgress());

为此,您需要在实验中添加一个名为 myText 的文本元素。理想情况下,将其复制到您拥有的运行次数,将它们放在彼此下方并使用其getIteration() 从模型中访问它们。然后,每次迭代都会更新自己的文本元素。

【讨论】:

以上是关于在任意逻辑参数变化实验中显示模拟进度百分比的主要内容,如果未能解决你的问题,请参考以下文章

两个进度条,加上百分比显示(用WPF实现)

java实现进度条

Qt 进度条

android进度条怎么显示百分比

Android自定义控件系列案例

这是一个进度条的效果,但是代码中的百分比显示不是我想要的,我想要的是数字自动计算百分比。