netlogo - Netlogo:设置相互之间具有特定距离的pcolor色块
问题描述
我正在尝试为不同的补丁设置 pcolor orange 。我希望它们是随机创建的,但彼此之间始终保持 R 的距离。在当前的代码中,它随机创建补丁就好了,但如果橙色补丁在半径范围内,它会简单地删除它们,导致少于 N 个橙色补丁。我该如何解决这个问题,以便在距离 R 处创建所有 N 个补丁,而不仅仅是随机落在彼此半径 R 之外的补丁?
ask n-of N patches
[
if not any? other patches with [pcolor = orange] in-radius R [
set pcolor orange
]]
解决方案
您非常接近,但是询问N
随机补丁可能会导致任意数量的橙色补丁,也许一个补丁会被着色,而其他随机N-1
补丁将在半径范围内R
,即使有很多补丁仍然可以着色。也许如果你问所有的补丁你会得到更一致的结果,
ask patches
[
if not any? other patches with [pcolor = orange] in-radius R
and count patches with [pcolor = orange] < N
[
set pcolor orange
]
]
如果您希望所有可能的补丁都着色,而不仅仅是N
您可以删除(或注释)整行and count patches with [pcolor = orange] < N
。
另请注意,ask patches
它将随机迭代补丁,因此如果您需要补丁的可重复或有序着色,这不是理想的方法。
推荐阅读
- java - 为什么要单击两次的按钮才能起作用?
- linux-kernel - 使用 'dd' 将二进制文件分开并提取部分
- webpack - 使用 Webpack,升级电子应用程序版本(Windows)并不总是删除以前版本的快捷方式和卸载条目
- rest - 如何以及在何处链接 VUE 中的相关 DATA 记录,使用 sequelize、express、finale 和 axios
- python - 如何使用 Python 中的变量创建 SQL 批量事务(使用 SQlite3)
- python - “NoneType”对象不可下标-openCV
- javascript - javascript导出可重用函数
- angular - 有没有办法从 Chartjs 的 click 函数调用组件的函数
- c# - 如何在 C# 中从 fin 读取十进制数和整数后对数组进行排序
- python - 有没有一种有效的方法,在每个单个样本之间使用 NaN 对 dask 或 xarray 进行上采样?