美文网首页
2020-09-14QT写一个简单的元胞自动机(3)

2020-09-14QT写一个简单的元胞自动机(3)

作者: nan34 | 来源:发表于2020-09-14 09:06 被阅读0次

目录

  1. 需求分析
  2. 需求设计
  3. ui设计

1. 需求分析

整体目标:写一个简单的NS模型
场景:一个周期性的直通道(右端出,左端进),多辆车按一个简化版的NS模型,在正中间运动,示意图如下

image.png
简化版的NS模型
1.加速:有加速的趋势,且不会超过最大速度
2.减速:车辆前方距离不够时,车辆要减速来避免相撞。
3.更新:车辆根据其速度进行运动
公式化一下:设加速度a=1 Cell/(T^2),其中Cell代表一个元胞的尺寸(此处不妨假设为0.4m),T代表更新的时间步长(假设为0.4s)
1.加速:t时刻的期望期望速度V=V(t)+a,
2.减速:车的最终速度V(t+T)=min(Vmax,V,D/a),三者(车的最大速度,车的期望速度,场景可允许速度)之间取最小,D是车前可用空间,车的最大速度设为5个格子每时间步长。
3.更新:t+T时刻的位置,X(t+T)=X(t)+V

2. 需求设计

1.信息的存储:对每个车需要进行车的数据记录(速度,位置),可以定义一个车的类MyVehicle
2.场景的初始化(用按钮控制):初始化车的位置和速度,并绘图

  1. 场景的更新:采用随机更新的方式,调用更新函数后,绘图。

3.ui界面的设计

3.1 主窗口的规划
假设通道100个格子长,10个格子宽,每个格子10像素的话。至少要1000X100,考虑到控件以及空间的预留,选中后如下进行设置。


最大最小尺寸相等,以保证不会被拉伸和缩放

先考虑程序控制按钮和车辆数量输入框的布局,依次拖入,大致排成一排,如下图所示,其中控件的文本显示通过双击修改。


image.png
然后通过布局使窗口更好看。
加入三个水平弹簧,全选中后,点击水平布局
image.png

拖入垂直布局盒并加入垂直弹簧,用来给出结果图的空间。


image.png
点击主窗口widget,选择垂直布局,
image.png
运行,看看。(可以对组件改名,方便引用)
还行的布局

3.2 按钮的槽函数
由于是对按钮进行点击,来跑模型,所以需要给按钮写响应点击的函数。分别对三个按钮右键,转到槽,选择click槽函数,让QT自动帮你生成按钮对应的响应函数

image.png
cpp文件对应的槽函数
槽函数需要实现不同的功能,开始按钮点击要开始模拟模型,暂停是暂停计时器函数(先不考虑),结束是关闭窗口。
处于方便观查,补加上一个“确认按钮”(btnOk),观察初始化的场景,如下图
补加按钮
这样槽函数内先调用几个没有实现的空函数,其中关于计时器的后面会提到。
槽函数的简单填写
现在的效果:
点击结束按钮会结束

相关文章

  • 元胞自动机的应用

    【定义】元胞自动机(Cellular Automata, CA)定义在一个具有离散、有限状态的元胞组成的元胞空间上...

  • Python 实现最简单的元胞自动机

    简介 元胞自动机(cellular automata) 是离散而抽象的计算系统。元胞自动机在时间和空间上是离散的,...

  • 逆转箭头

    设元胞自动机(CA)运行第i步的位形为,若位形中只包含0和1两种元胞,则任一迭代规则都可以改成可逆的元胞自动机规则...

  • 狐狸吃兔子模型元胞自动机

    项目介绍 狐狸吃兔子模型元胞自动机 标签 Java、JavaGUI、元胞机 技术工具选型 Java、JavaGUI...

  • 元胞自动机

    2013年数模,有一道题是关于道路故障占用车道的规划和预测分析,其中有一篇优秀论文用到了元胞自动机分析方法.元胞自...

  • 元胞自动机

    计算的极限(零):逻辑与图灵机:http://songshuhui.net/archives/tag/%E8%AE...

  • 多个体系统整理

    预测考题 Agent的定义/特点 元胞自动机的特点 一维自动机规则编码 GA的伪代码 Wolfram 的分类 MA...

  • Netlogo:元胞自动机

    参考书:《An Introduction to Agent-Based Modeling: Modeling Na...

  • 元胞自动机基础

    元胞自动机(Cellular Automata, 简称CA)是一时间和空间都离散的动力系统。散布在规则格网(Lat...

  • Python 实现基于元胞自动机的生命游戏

    这次我们使用 Python 来实现生命游戏,这是一种简单的元胞自动机。基于一定规则,程序可以自动从当前状态推演到下...

网友评论

      本文标题:2020-09-14QT写一个简单的元胞自动机(3)

      本文链接:https://www.haomeiwen.com/subject/nxdzektx.html