5- 从羊-草生态系统深入Turtle与Plot画图
该系列笔记基于集智乐园的《Netlogo多主体建模入门》课程,感谢张江老师与各位志愿者的辛勤付出。
- 集智乐园 《Netlogo多主体建模入门》 https://campus.swarma.org/play/play?id=429
- 对图或者运行窗口 点击右键, 选定之后,能自由缩放大小、拖动位置
观测某个 turtle
- inspect ----- 监视 turtle 的详细信息
- watch-----在图中标记 turtle 的运动
- follow ----- 跟随该 turtle
如何绘图?
下拉选图,然后添加
自动调整尺度: 自动调整横纵坐标轴的取值范围
显示图例:就是显示每条线的颜色和代表了什么
绘图笔的名称 最好用英文,因为涉及到函数调用
可以改变线条的颜色
Plot绘图 需要设置 tick
不然图无法和模型的时间同步,就无法作图
代码:
turtles-own [energy] ;; 需要给turtles新建一个属性
to setup
clear-all
ask patches[
if random-float 1 < 0.2[
set pcolor green ;;随机长草
]
]
create-turtles 1[
set energy 100 ;;给个初始化的能量值
]
reset-ticks
end
to go
add_food ;; 每一步都要让草长出来
ask turtles[
turtle_move ;; 函数调用
turtle_breed
turtle_die
]
tick
end
to add_food ;; 长草=添加食物
ask n-of 10 patches[ ;; 随机取出10个patch
set pcolor green
]
end
to turtle_move ;; 移动
if pcolor = green [
set energy energy + 10 ;; 吃草
set pcolor black
]
if random-float 1 < 0.2 [
set heading random 360 ;; 有一定的概率随机改变方向
]
set energy energy - 1 ;;每走一步,能量减少
fd 1 ;;向前移动
end
to turtle_breed ;; 繁殖
if energy > 500[
set energy energy - 450
hatch 1[ ;; 生育出一头小羊
fd 1
set energy 100 ;; 小羊的初始能量
]
]
end
to turtle_die ;; 没能量就死亡
if energy <= 0 [
die
]
end