服务热线:010-62964229
格瑞纳根植于教育行业,让仿真软件从理论教学到应用实践
新闻资讯
当前位置:首页 > 新闻资讯 > 行业新闻
操作教程 | AnyLogic建模时通过动态添加模型演示实现更快地进行编辑过程中的导航
2022-12-30 15:50:24 发布人:admin 阅读 2191

原文链接:https://www.theanylogicmodeler.com/post/dynamically-adding-model-presentations-to-make-navigation-during-editing-faster-in-anylogic


本文由实习生Devon Cowling分享,他目前正在比勒陀利亚大学完成工业工程学位的最后一年项目,由Jaco-Ben Vosloo指导。本文旨在分享一种可以在处理大型复杂智能体演示时提高AnyLogic导航速度的方法。由于这些动画和演示在AnyLogic中的工作方式,它们可以使用许多资源。


对每个模型开发人员来说,处理大型智能体演示时再遇到严重性能损失,无疑让人非常恼火。乍一看,在处理模型时先删除演示,然后在运行之前手动重新添加演示似乎可以很容易解决。这样既可以很好地进行开发工作,也可以提高导航速度,但就开发过程来说这将非常麻烦和繁琐。这种方法要求您在每次处理动画智能体时都需要重复此操作,如果您像我一样,在打开智能体之前忘记从项目任务栏中删除它,那么当您的计算机时代回到拨号上网速度时,您会感到非常惊讶。



我从我最后一年的项目中借鉴了一个大型道路网络的示例模型。大型道路网络位于名为AgentWithIntenseAnimation的智能体中,需要在运行时在Main上看到。


在展示演示时,请查看以下视频中AnyLogic画布的移动速度有多慢。



如果你的模型跟视频一样,慢的几乎想拔头发,可以想象一下我在这个项目上工作了几周的感觉。。。



谢天谢地,有一个简单的方法可以解决这个问题,动态添加演示!


这将加快导航速度,同时在运行时保持演示的功能和动画。最棒的是…只需要做一次!


在启动顶层智能体时使用以下代码添加演示:


presentation.add(new ShapeEmbeddedObjectPresentation(Agent agent, ShapeDrawMode drawMode, boolean ispublic, double x, double y, double z, double rotation, boolean drawAgentWithOffset, boolean scaleIsAutomatic, Agent embeddedObject));


对于我创建的示例模型,上面的代码如下所示:


presentation.add(new ShapeEmbeddedObjectPresentation(this,ShapeDrawMode.SHAPE_DRAW_2D3D, true, 0, 0, 0, 0, false, false, AgentWithIntenseAnimation));


使用上述技术,结果如下:


如你所见,动态添加演示可以使导航更加顺畅,更容易处理该智能体,无论是添加统计信息还是添加按钮等。


这种方法使使用大型演示的模型变得更加用户友好(而且确实让我不必担心),所以我希望它能对在AnyLogic中遇到导航缓慢问题的人有所帮助。

示例模型:DynamicPresentaion

  电话:010-62964229
  邮箱:support@carila.cn
  地址:北京市海淀区上地信息产业基地三街3号楼1门4层401
©2021 北京格瑞纳电子产品有限公司 版权所有 京ICP备19024141号 京公网安备 11010802029095号
 
QQ在线咨询
点击这里给我发消息 点击这里给我发消息
服务热线
010-62964229
E-mail
support@
carila.cn
地址:北京市海
淀区上地信息产
业基地三街3号