主题:瘟疫模拟–关于社区间的固定人员流动模式的影响

组员:张逸凡,邓国章,李衡逸(学号顺序)

零、选题立意:
在课堂上看过了由老师演示的瘟疫在社区中由于人员随机移动的传播,并模拟了接下来由于隔离封锁导致的传播趋势变化的模拟,我们认为人在现实中的行为模式相对固定一些,尤其是生活在城市当中的人,往往过着几点一线的生活,行动轨迹不是无目的的,在这种情况下模拟瘟疫传播可能可以展现更真实或更能作为现实参考的结果,确定方向后,我们首先进行了资料收集与研究探讨。

一、调研资料:
我们首先查询了关于人类历史上影响最大,最致命(或者说死亡人数最多)的瘟疫——鼠疫,或称黑死病的资料。因为在那个时期人类缺乏对疾病的正确认知,也没有足够有效的防疫措施,从而做不到有效的隔离与控制疫情。但鼠疫的传播仍然会受到人类行为模式的影响,并在这种情况下展现出不受隔离影响的社区间与社区内传播的形式。
首先是鼠疫的传染性:
1.鼠蚤叮咬传播
鼠蚤叮咬是主要的传播途径,由此可将动物身上的病原体(鼠疫耶尔森菌)传播给人,形成“啮齿动物→蚤→人”的传播方式。
2.呼吸道感染
病人呼吸道分泌物带有大量的鼠疫耶尔森菌,可经呼吸道飞沫形成人际间传播,并可造成人间鼠疫的大流行。
3.经皮肤传播
接触传播。健康人破损的皮肤黏膜与病人的脓血、痰液或与患病啮齿动物的皮肉、血液接触可发生感染。
人群普遍易感,无年龄和性别上的差异。疫区的野外工作者、与旱獭密切接触的猎人、牧民是高危人群。感染后可获得持久免疫力,预防接种可获得一定免疫力。
其次是真实的历史:14世纪中叶,一场灾难性的淋巴腺鼠疫席卷欧洲,使欧洲遭受到空前绝后的残酷蹂躏。从1347年到1353年6年间,淋巴腺鼠疫导致2500多万欧洲人丧生,占当时欧洲人口的近1/3,欧洲变成了人间地狱。基督教徒在绝望中慨叹:世界末日来了。这场瘟疫就是永远刻在欧洲人心目中的黑死病。
根据研究,鼠疫传播到欧洲的主要原因在于以下几点:一是13世纪早期,中亚地区发生多种自然灾难,导致此地的老鼠四处乱窜逃避灾难;二是13世纪蒙古铁骑的军事和商业扩张造成了黑死病的扩散;三是13、14世纪东西方商业交往变得密切,西方大批商人、教士克服各种困难来到东方寻求交往,返回的时候也将黑死病毒带回欧洲。
这一系列行为可以看做有目的性的人群流动造成了两个超大型社群之间的瘟疫传播,证明了我们的猜想具有实际意义,人类的目的性行为确实会对瘟疫的传播产生影响,这是值得研究的方向,而后我们查询了近现代中国发生的重大疫情——非典(SARS)的相关信息。
重症急性呼吸综合征(SARS)为一种由SARS冠状病毒(SARS-CoV)引起的急性呼吸道传染病,世界卫生组织(WHO)将其命名为重症急性呼吸综合征。本病为呼吸道传染性疾病,主要传播方式为近距离飞沫传播或接触患者呼吸道分泌物。
SARS的传播形式显然更为直接与容易,这在现代人群聚集的居住模式下变得更为危险,在香港曾经出现住户都闭门不出,却因为楼顶住户染病,通过水管系统感染了一整栋的人的案例,这虽然属于极端个例,却也表明隔离对于社区内疫情传播的控制效果实际上有限,在人们没有隔离防范意识的时候更加如此。
接下来我们查询了更靠近的时代下,瘟疫在社区内传播的案例以及其模拟作为启发和借鉴材料:




虽然无法做到以这么复杂的模型模拟具体情况,但查询到的模型模拟以及研究探讨对我们的启发非常大。

二、设计以及草图:
我们以数个社区及其内部人员来进行模拟,首先确定人员靠近会导致传染,其次设定几个社区的人员一般会在固定的来往关系下进行流动,在此基础上再考虑隔离等情况。


三、演示程序设计:
Mover[] movers = new Mover[100];
float InfectRate=0;
float InfectChance=0.2;
void settings() {
size(500, 500);
smooth();
}

void setup() {
colorMode(RGB);
background(0);

for (int i = 0; i < movers.length; i++) {
movers[i] = new Mover();
}
}//初始化

void draw() {
noStroke();
fill(0);
rect(0, 0, width, height);//背景
for (int i = 0; i< movers.length; i++) {
movers[0].state=1;//将一个个体设置为0号感染者
for (int j = 0; j< movers.length; j++) {

if(movers[i].pos.dist(movers[j].pos)<16)
{PVector a = movers[i].SocialDis(movers[j]);movers[i].applyForce(a);
}
else
{PVector a = movers[i].SocialDis(movers[j]);movers[i].applyForce(a.mult(-0.5));
}//模拟疫情当中个体保持社交距离的行为,当两个个体靠得太近时会产生斥力,太远时则产生轻微的引力float c=random(0,1);if(c<InfectChance)
if(movers[i].pos.dist(movers[j].pos)<15)
{ //<>//if(movers[i].state==1&&movers[j].state==0)movers[j].state=1;
}//两个个体靠得太近时将根据传染概率导致传染
}
if(movers[i].state==1)movers[i].lifetime--;
if(movers[i].lifetime<0)movers[i].state=2; //患病后持续减少lifetime,直到为0,转换为康复/死亡状态
movers[i].applyForce(movers[i].dir);//使个体在区域内运动
movers[i].update();
movers[i].show();
movers[i].checkEdges();

}

}

Block[][] legion =new Block[7][7];
// Size of cells
int cellSize = 50;

// How likely for a cell to be alive at start (in percentage)
float probabilityOfAliveAtStart = 15;

// Colors for active/inactive cells

// Array of cells
color[][] cells;
// Buffer to record the state of the cells and use this while changing the others in the interations
color[][] cellsBuffer;

// Pause
boolean pause = false;

void setup() {
frameRate(1);
size (350, 350);
// Instantiate arrays
cells = new color[width/cellSize][height/cellSize];
cellsBuffer = new color[width/cellSize][height/cellSize];

for (int x=0; x<width/cellSize; x++) {
for (int y=0; y<height/cellSize; y++) {
legion[x][y]=new Block(x,y);
if(x0||y0)legion[x][y].lockdown=1;
if(x6||y6)legion[x][y].lockdown=1;
if(x0||y0)legion[x][y].infected=2;
if(x6||y6)legion[x][y].infected=2;//创建不受影响的边界
}
}
int xx=(int)random(1,5);
int yy=(int)random(1,5);
legion[xx][yy].infected=1;
for (int x=0; x<width/cellSize; x++) {
for (int y=0; y<height/cellSize; y++) {
legion[x][y].show();
}
}
background(0); // Fill in black in case cells don’t cover all the windows
}// 初始化

void draw() {

//Draw grid
for (int x=0; x<width/cellSize; x++) {
for (int y=0; y<height/cellSize; y++) {
legion[x][y].show();
}
iteration();
}
}

void iteration() { // When the clock ticks
// Save cells to buffer (so we opeate with one array keeping the other intact)
for (int x=0; x<width/cellSize; x++) {
for (int y=0; y<height/cellSize; y++) {
cellsBuffer[x][y] = cells[x][y];
}
}

// Visit each cell:
for (int x=0; x<width/cellSize; x++) {
for (int y=0; y<height/cellSize; y++) {
// And visit all the neighbours of each cell
int neighbours = 0;
for (int xx=x-1; xx<=x+1;xx++) {
for (int yy=y-1; yy<=y+1;yy++) {
if (((xx>=0)&&(xx<width/cellSize))&&((yy>=0)&&(yy<height/cellSize))) { // Make sure you are not out of bounds
if (!((xxx)&&(yyy))) { // Make sure to to check against self
{
if(legion[xx][yy].infected1)
neighbours+=1;
}
} // End of if
} // End of if
} // End of yy loop
} //End of xx loop
//统计区域周围感染的区域的数量
if(legion[x][y].infected0&&legion[x][y].lockdown0)
{
float ir=random(0,1);
if(ir<0.1*neighbours)legion[x][y].infected=1;
}//当区域没有封锁的时候,周围的感染区域越多,感染的概率就越大
if (neighbours<=3) {
if(legion[x][y].lockdown1)
if(x>0&&y>0&&x<6&&y<6)
legion[x][y].lockdown=0;//当周围感染的区域减少到一定数量时,封锁解除
}
else {
if(neighbours>3)legion[x][y].lockdown=1;//当周围感染的区域较大时,启动封锁
}

  if(legion[x][y].infected==1)legion[x][y].lifetime--;//当区域感染时,持续消耗if(legion[x][y].lifetime<0)legion[x][y].infected=2;//一段时间后,区域获得群体免疫} // End of if
} // End of y loop

} // End of x loop

演示视频:
链接:https://pan.baidu.com/s/1EZ_B23qzNkyPAOXsMO56Kg
提取码:3ulm

《交互媒体专题设计》方案设计相关推荐

  1. 交互媒体专题设计------《The Wiley Handbook of Human Computer Interaction》

    现代医疗保健和(再)能力培养中的HCI方法 目录 序章 历史背景 从最初的概念评估到定制和商用仪器的系统 应急模型:优化激励区(缩放) 机器人照明设备的无障碍手势控制 视频游戏无障碍手势控制 结论 终 ...

  2. 交互媒体专题设计------《The Wiley Handbook of Human Computer Interaction》之观后感

    现代医疗保健和(再)能力培养中的HCI方法--观后感 目录 文章概括 无障碍交互系统发展现状 思考 参考文献 目录 文章概括 本文介绍了一个成熟的HCI前沿研究开发机构.从20世纪80年代开始的概念验 ...

  3. 交互媒体专题设计之一艺工交叉

    一.由<达芬奇的人生密码>引发的艺工结合随想 莱昂纳多达芬奇只有21幅画作存在,但他的私人手稿有6000页存活下来. 这些非凡的绘画和写作代表了莱昂纳多的意识流:他的激情,痴迷,反思,野心 ...

  4. 《交互媒体专题设计》之疫情模拟 设计文档

    目录 引言 设计环境 设计简介 场景设计 人物设计 功能设计 小结 引言 此次突如其来的新冠病毒疫情蔓延迅速,短短时间便蔓延全球.由于我国防控工作到位,民众团结,已经战胜了疫情.但我们作为学生,依然无 ...

  5. 交互媒体专题设计——疫情模拟

    目录 前期工作 设计思想 技术方案 场景设计 人物设计 实现思路 核心代码 模拟结果 前期工作 前期调研 相关技术介绍 技术文档 设计思想 此次突如其来的新冠病毒疫情蔓延迅速,短短时间便蔓延全球.由于 ...

  6. 交互媒体专题设计结课实验报告

    一. 作品背景及内容概述 本次作业的灵感来自于参观新媒体艺术展览的时候,不管是主要用来拍照片打卡的teamlab还是其他小众独立的个人作品展,或多或少都会用到绚丽的粒子背景.常见效果比如雨点.星辰.荧 ...

  7. 计算机交互媒体应用范围,浅析交互媒体设计中的科技与艺术的关系

    颜成宇 孙博 摘 要:科学技术发展带来的影响是多面的,最重要的体现是给生活方式带来的变化.不仅表现在人们的衣食住行,还表现在对人们精神层面的影响.随着数字化时代的到来,交互媒体在实际生活中的应用也越来 ...

  8. 交互媒体设计作业:Processing射击游戏

    交互媒体设计作业:Processing射击游戏 一.简介 这是一个全年龄向的双人射击游戏,操作简单,容易上手,只需操控四个方向键,就能操控你的小球吐出子弹全屏弹跳,攻击你的对手.这个简单的小游戏通过p ...

  9. html5与交互融媒体内容设计,广东省“HTML5交互融媒体内容设计与制作”赛项在我院顺利举行...

    原标题:广东省"HTML5交互融媒体内容设计与制作"赛项在我院顺利举行 3月22-23日,2018-2019年广东省职业院校学生专业技能大赛"HTML5交互融媒体内容设计 ...

最新文章

  1. 最大连续子序列和-动态规划
  2. 计算机体系结构:嵌入式方法_计科考研里的【计算机系统结构、计算机软件与理论、计算机应用技术】都是什么意思?...
  3. CTFshow 反序列化 web271
  4. Flex 当鼠标悬停在DataGrid某行上时用datatoolField显示当前行
  5. 四 Apache Axis2 部署 WebService
  6. svn redis和rabbitmq服务启动
  7. 用于用户C语言标识符,下列可用于C语言用户标识符的一组是( )
  8. 浏览器 UC 自动添加关键字 去掉关键字
  9. 合格架构师的目标管理
  10. C/C++排序算法(5)归并排序
  11. jdk生成keystore、tomcat配置https
  12. c语言中优先级队列_C ++中的优先级队列
  13. 深入解读Linux内存管理系列(总览)
  14. 海思制作EXT4文件系统工具make_ext4fs
  15. 麦语言和python区别_放弃文华财经,自己编程实现期货程序化交易
  16. Centos6.4忘记密码 单机下修改root密码
  17. 二叉平衡树之二叉树搜索树【咱们一起手动模拟实现】
  18. 软件工程结对开发——返回一个整数数组中最大子数组的和(JAVA)
  19. 恶意邮件智能监测与溯源技术研究
  20. 计算机三级网络技术分值占比,全国计算机等级考试三级考试题型及分值比例

热门文章

  1. jdk1.8官方文档下载mac
  2. Ubuntu18 04安装QQ
  3. 在qemu中添加swap分区
  4. C程序设计复习(1)
  5. 使用docker时出现wlan网络适配器驱动程序出现问题
  6. 《薄冰实用英语语法详解》连载之九:虚拟语气
  7. CAREC道路安全工程手册5:道路安全审计星级(附下载)
  8. 易语言零基础入门视频教程 易语言自学全套教程
  9. 密室逃脱,越恐怖、越赚钱
  10. Delphi XE7+Webservice三层架构ERP系统简介