我已经导入了道路shapefile和多边形shapefile,并且已经与补丁相交了。我想在特定的多边形中创建一定数量的海龟,并且海龟只允许在道路shapefile上移动。 例如,在多边形A中有海龟20,多边形B中有海龟30,我想让它们的数量显示在自己的多边形上。
我所做的是我已经使用(我的意思是道路和多边形为2 foreach
)将道路和多边形相交
foreach gis:feature-list-of x
[ vector-feature ->
ask patches gis:intersecting vector-feature
[blah blah blah...]
]
然后,我使用此代码创建了海龟
to setup
create-walkers Population
ask walkers
[
set wlocation one-of patches with [pcolor = red]
;I have assigned the road shapefile to red color.
move-to wlocation
end
只有补丁是红色的,就可以了,
但是当我尝试set wlocation one-of patches with [pcolor = red and pcolor = ;another color which is the color of polygon]
时
Netlogo出现了一个错误
move-to
期望输入是代理,但没有人代替
我该如何解决这个问题?
谢谢。
答案 0 :(得分:2)
您似乎对patches
有一个基本的误解。在NetLogo中,补丁程序是世界的一部分,并且是一个单元。这意味着patch
只能有一种颜色。尝试运行此代码(作为新模型)
to testme
ask patches
[ set pcolor random 256
]
end
您可以看到补丁,每个补丁都有随机分配的颜色。现在,在命令中心中输入inspect one-of patches
,将打开一个inspect
窗口,用于随机选择的修补程序。您将看到列出的变量之一是pcolor
。
简短的回答-一个色块只能有一种颜色,因此您对颜色A和颜色B的色块的要求毫无意义。