Cells
图标

说明
- 关于Cell基本概念和理解请阅读基本概念和实体章节
- 基本建模操作请阅读实体章节
- 关于Cell内置属性和内置行为的技术细节参见相关章节
- 关于与其它实体交互,以及Agent在Cell空间的运动交互内容参见实体间交互章节
- 关于创建Cell自定义行为的建模方法和规则详见流程章节
要点
空间的构成
- Cell个体是组成空间的基本单元,每个单元都是边长为1的正方形
- Cells以矩形点阵形式排列,Cell种群组成连续的2维平面空间
- Cell个体的名义坐标(内置属性
Coordinates)为正方形的中心,x坐标和y坐标都是整数 - Cell个体的范围覆盖,x维度
[x-0.5, x+0.5),y维度[y-0.5, y+0.5),当一个Agent个体坐标在该范围内时它就处于这个Cell上 - 一个2D空间的x方向宽度为,
cell_entity.MaxX - cell_entity.MinX + 1,y方向类似 - Cell2D空间中的绝对方向为,东0°,北90°
示例
- 下图是一个坐标原点在左下角、个体的最大x和y坐标均为5的2D空间所有Cell个体的分布和坐标示意
- 空间宽6,高6
- 当一个Agent的坐标恰好为
[0.5, 0.5]时,它处于中心坐标为[1,1]的Cell上,而不是其它3个

空间的环绕
- Cell空间范围虽然有限,但可以在水平和竖直方向被设置为是否环绕
- Agent沿固定方向持续运动时,如果空间在该方向上环绕,则Agent将从边界穿出从另一侧边界重新进入空间,否则会停止在边界
- 实体间交互章的"空间运动交互"节提供了Agent在不同环绕模式下的Cell空间中运动机制细节,这里不再赘述
提示
通过坐标指定Agent的空间位置时,如果输入的坐标超过Cell设定的范围,在模拟运行时
- 如果Cell设置为不环绕,系统将会报错
- 如果Cell设置为环绕,不会报错,系统将自动换算到空间坐标范围之内
空间的距离
衡量空间中任意两点距离时,与空间本身是否环绕相关
提示
与其他组件的关系
- 显然,当模型中不存在Cell组件时,与空间相关的逻辑(如Agent的空间坐标、行为中的移动或置于动作等)将触发运行报错
- 可以在“技术说明”章节的说明表中获得依赖Cell实体的内置属性和内置行为相关详细信息
Cell对象的设置方法

坐标系设置
原点位置
可以选择在Cell群体矩阵的中心、四个角、四条边中心的个体中心作为坐标系原点

X和Y轴的极限坐标
- 指的是距离原点最远的Cell个体的中心坐标,由于Cell以矩阵排列,因此均为整数
- 根据原点位置确定,如原点在左下角,则最小X坐标和Y坐标必为0,但可以设置正整数的最大XY坐标,如下图,所以设置后该Cell空间共有11×11个Cell,右上角Cell的
Coordinate内置属性值为[11,11]
- 其余情况类似,这里不再一一列举
- 以上设置值对应Cell的
MinX,MaxX,MinY,MaxY内置属性,以供建模时公式访问
空间环绕设置

模型案例
观察在Cell空间环绕模式下Agent出入视野的规律,如果觉得速度太快可以尝试步进式运行
个体属性设置

设置方法与Agent个体属性设置类似
案例
模型案例
经典元胞自动机:生命的游戏——约翰·康威(John Horton Conway)