我是Netlogo的新手。我试图创建一个交换意见的模型,以便为不受欢迎的设施找到合适的位置。该模型包含了三种不同观点的人。
我导入了一个包含四个不同土地使用类别(建筑、农业、森林、水)的GIS栅格图层。所有品种被随机分配到土地利用类“建筑物”。这种交互是通过每个节拍的两个代理之间的随机配对连接进行的。关于一个位置的合适程度的默认意见值应该基于一定距离内的土地使用类别。距离应分为近距离(<= 20)、中距离( 21 - 50 )和远距离(> 50 )。如果一只海龟被要求给出它对某个斑块的看法,它应该自动计算出它们彼此之间的距离。
但是,我确实遇到了一些问题,需要找到一个代码来为每个海龟定义离它近、中或远的距离。到目前为止,我有两个主要想法,但我写的代码没有提供令人讽刺的结果。
第一次尝试是这样的:
calc-distance
ask turtles [
if (distancexy pxcor pycor) <= 20
[set location near]
if (distancexy pxcor pycor) > 20 and (distancexy pxcor pycor) <= 50
[set location middle]
if (distancexy pxcor pycor) > 50
[set location far]]
end第二次尝试是这样的:
海龟位于a处,斑块位于b处,自动计算a和b之间的距离
if ab <= 20
[set location near]
if ab > 20 and ab <= 50
[set location ...}
end如果有人能为这个问题提供任何解决方案,我将不胜感激。提前感谢!
1月
发布于 2014-12-13 09:09:08
您正在尝试将品种变量名作为参数进行传递。这是一个语法错误。使用distancexy时,期望值是数字。你可以使用loop来检查所有你想检查的职位。然而,我认为你的乌龟应该有变量来存储每个位置的意见。
calc-distance
ask turtles [
if (distancexy point1-pxcor point1-pycor) <= 20
[set point1-location "near"]
if (distancexy point1-pxcor point1-pycor) > 20 and (distancexy point1-pxcor point1-pycor) <= 50
[set point1-location "middle"]
if (distancexy point1-pxcor point1-pycor) > 50
[set point1-location "far"]
]
. . . continue with all other locations OR use loop.
endhttps://stackoverflow.com/questions/27447191
复制相似问题