NetLogo学习交流
您当前的位置: 首页
NetLogo 编程技术问答
1. NetLogo中的主体有哪些?
NetLogo中共有三类主体,分别是:
海龟(Turtles):海龟指能够在世界中移动的主体。
嵌块(Patches):嵌块是世界中不能移动的主体,二维世界划分为由嵌块组成的网格,每个嵌块占据一个矩形小块。
观察者(Observer):观察者是一个全局主体,它观察着由海龟和嵌块构成的世界,能够执行指令获取世界全部或部分的状态,或实现对世界的控制。
三者的关系如下图所示:
2. 主体的空间坐标表达是怎样的?
每个嵌块有二维坐标(pxcor, pycor),坐标值为整数,默认情况下二维世界的水平垂直坐标范围为(-17, 17)。
每个海龟也有坐标(xcor, ycor),海龟的坐标不必是整数,因此海龟不一定正好位于某个嵌块的中心,一个嵌块上可以同时有多个海龟。
3. NetLogo模型的两大组成部分是什么?
NetLogo编程包括可视化部件和例程两部分,要运行程序,必须先在界面页(Interface)中创建可视化控件,然后在代码中实现相应的例程(Procedures),通过设置控件的属性将二者联系起来。
4. 各类控件的主要功能是什么?
NetLogo共有九类控件,各类控件的功能如下:
按钮(Buttons):用于执行例程,例如,在“Wolf Sheep Predation”模型中的按钮“setup”、“go”等。可以选择按钮的执行主体,是否持续执行,设置名称和快捷键等。
滑块(Sliders)、开关(Switches)、选择器(Choosers)、输入框(Text boxes):这些控件都是参数控件,都对应一个全局变量,将这些全局变量作为参数使用在程序中,就能实现仿真参数的控制。滑块对应于连续型的全局变量,开关对应于逻辑型的全局变量,选择器对应于离散型的全局变量,通过输入框可以直接手动输入全局变量的值。
监视器(Monitors):用于报告某主体的数量或参数的值,如可以用于报告模型中海龟主体的数量。
图(Plots):用于可视化输出结果,有线形、条形、点状三种输出形式。
输出区(Output area):用于展示输出结果的区域。
注释(Notes):用于对界面页内容的注释,可以对各类界面控件添加注释。
5. NetLogo例程的基本结构是什么?
程序中至少要有初始化例程和仿真执行例程:
初始化例程实现对模型初始状态的设置,生成所需的海龟,设置其状态。例如,以模型库中的“Wolf Sheep Predation”仿真的执行通过例程“go”实现,在例程“go”中编写所需执行的各种指令。
需要在界面页中建立一个按钮与例程“go”相联系,该按钮可以是一个只执行一次(once)的按钮,也可以是一个持续执行(forever)按钮。如果是后者,点击后将不断重复执行例程“go”,直到遇到停止指令或用户再次点击该按钮则仿真终止。
NetLogo 编程工具介绍
http://mari.hzau.edu.cn/NetLogo_introduction.htm
NetLogo 学习资源
http://mari.hzau.edu.cn/NetLogo_resources.htm