netlogo - 有没有办法在NetLogo中用一行代码设置多个补丁的补丁颜色?

标签 netlogo

现在我正在使用

ask patch 1 1 [set pcolor grey]
ask patch 1 -1 [set pcolor grey]
ask patch -1 1 [set pcolor grey]
ask patch -1 -1 [set pcolor grey]

有没有办法在NetLogo中用一行代码设置多个补丁的补丁颜色?

最佳答案

最简单的方法:

ask (patch-set patch 1 1 patch 1 -1 patch -1 1 patch -1 -1) [ set pcolor grey ]

(以下内容已根据 Seth 的评论进行更新:)

如果这是从观察者运行的(也就是说,它不是由任何代理运行的),您可以使用 at-points像这样:

ask patches at-points [[1 1] [1 -1] [-1 1] [-1 -1]] [ set pcolor grey ]

但是,如果此代码由海龟或补丁运行,则坐标列表将被视为相对于该代理。因此 patches at-points [[1 0] [0 1]] 将给出当前代理右侧的补丁和上方的补丁。您可以轻松制作使用绝对坐标的版本:

to-report patches-at-coords [ coordinates ]
  report (patch-set map [patch first ? last ?] coordinates)
end

然后像这样使用它:

ask patches-at-coords [[1 1] [1 -1] [-1 1] [-1 -1]] [ set pcolor grey ]

无论如何,除非你经常这样做,否则我会选择第一种方法。

关于netlogo - 有没有办法在NetLogo中用一行代码设置多个补丁的补丁颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31496372/

相关文章:

colors - 从 NetLogo 中的 RGB 颜色获取 HSB 值

list - Netlogo:使用概率分配变量

string - 如何修剪 NetLogo 中的空格

syntax - NetLogo: "with"具有多个条件的命令

counter - Netlogo,如何显示刻度数

netlogo - 代表其他海龟内存的海龟变量

gis - 将栅格 GIS 数据应用于补丁的更快方法 netlogo

netlogo - 如何不显示 "Patch Clusters Example"中的标签?

plot - 如何从 Netlogo 中提取图?

api - 在 NetLogo 扩展中执行原语中的命令 block