当前位置: 首页 > news >正文

【仿真建模-anylogic】ConveyorCustomStation原理解析

Author:赵志乾
Date:2024-06-19
Declaration:All Right Reserved!!!

1. 类图

2. 原理解析

2.1 核心函数
函数功能
ConveyorCustomStation()无参构造函数;该类另有两个有参构造函数,但已标注为废弃;
void addVertex(double x, double y)为2D多边形添加坐标点;
void onEnter(T agent)物料进入自定义站点时的回调函数;
2.2 代码解析

          由于Anylogic内核做过代码混淆,以下为二次加工后的逻辑;

//**********************核心字段************************************
// 自定义站点演示图形
private final Polygon2D polygon2D = new Polygon2D(this);
// 用于桥接图形化开发时自定义逻辑
private IConveyorCustomStationDescriptor<T> descriptor;//**********************构造函数************************************
public ConveyorCustomStation() {// 内核代码中的无参构造函数会创建IConveyorCustomStationDescriptor实现类的实例;其目的是满足Anylogic图形化开发自定义逻辑的需要;如需要动态生成ConveyorCustomStation,则建议直接定义ConveyorCustomStation的子类,然后覆写onEnter函数;this.descriptor= (IConveyorCustomStationDescriptor)IMaterialLibraryDescriptorFactory.create(IConveyorCustomStationDescriptor.class);
}//**********************简单函数*****************************************
// 为绘制自定义站点的2D演示,逐次添加顶点坐标;坐标单位为像素
public void addVertex(double x, double y) {// 2D多边形添加顶点坐标;this.polygon2D.addVertex(x, y);
}
// 演示内容实例化
void doInitialize() {// 由所在Level的initialize函数触发;super.doInitialize();this.polygon2D.initialize();
}
// 物料到达站点时回调函数
public void onEnter(T agent) {// 直接定义子类覆写即可,不建议使用descriptor做桥接this.descriptor.onEnter(agent);
}

3. 应用场景

          动态生成自定义站点时,定义该类的子类,并在子类中覆写onEnter函数,以便自定义物料到达站点时需要执行的逻辑;

相关文章:

  • Zabbix自定义监控JAVA进程
  • Go基础编程 - 05 - 数组与切片
  • (一)SvelteKit教程:hello world
  • windows桌面运维----第三天
  • CCAA质量管理【学习笔记】​​ 备考知识点笔记(三)质量管理方法与常见工具
  • 了解并解决 Flutter 中的灰屏问题
  • 瞬间将模型改为原来的60-200倍小
  • PHP框架详解 - CakePHP框架
  • 细说MCU输出互补型PWM波形时设置死区时间的作用
  • 大数据之Hadoop的特点是什么?有什么优缺点?有哪些发行版本?
  • 军用FPGA软件 Verilog语言的编码准测之触发器、锁存器
  • 各类存储器类型(RAM、ROM、FLASH、DRAM、SRAM)
  • Kafka之ISR机制的理解
  • Java程序设计语言的特点
  • 【Quartus 13.0】NIOS II 部署UART 和 PWM
  • 时间复杂度分析经典问题——最大子序列和
  • Codepen 每日精选(2018-3-25)
  • HTTP请求重发
  • Java知识点总结(JavaIO-打印流)
  • magento 货币换算
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Redis字符串类型内部编码剖析
  • unity如何实现一个固定宽度的orthagraphic相机
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 复杂数据处理
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 力扣(LeetCode)21
  • 力扣(LeetCode)357
  • 悄悄地说一个bug
  • 一道面试题引发的“血案”
  • 中文输入法与React文本输入框的问题与解决方案
  • ionic异常记录
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • scrapy中间件源码分析及常用中间件大全
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • $forceUpdate()函数
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (3)选择元素——(17)练习(Exercises)
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (javascript)再说document.body.scrollTop的使用问题
  • (LeetCode C++)盛最多水的容器
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (不用互三)AI绘画工具应该如何选择
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (函数)颠倒字符串顺序(C语言)
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • *算法训练(leetcode)第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • .Mobi域名介绍
  • .Net Core 微服务之Consul(二)-集群搭建