coordinates - netlogo:最小补丁坐标单元和监控可用性?
问题描述
我想将补丁空间的最小坐标单位(设置为每个补丁空间仅存在一只乌龟)更改为小于一,并对其进行监视。我们希望将最小空间单位设置为与 tick-advance 中相同的刻度大小 n(例如 n=0.1)。这是一段代码,但它不起作用。谁能帮我?提前致谢。
globals [n] ; n<=1 i.e. n=0.1
; omitted
ask turtles [forward n]
tick-advance n
解决方案
我发现自己和 Matteo 站在同一条船上——我不知道你想做的事情在 NetLogo 的背景下是可能的/有意义的。补丁的坐标是固定的(即,一个补丁是一个单位)但是任意的(Netlogo 中的 1 可以表示 1 m 或 1 km,取决于型号)。换句话说,补丁的坐标是离散的,而海龟可以在连续的空间中移动。所以你当然可以让乌龟以 1/10 的步长四处游荡:
globals [n]
to setup
ca
set n 0.1
crt 10
reset-ticks
end
to go
ask turtles [
forward n
]
tick-advance n
end
在上面的一次运行之后go
,您可以想象在坐标处有一只海龟[xcor = 0.1, ycor = 0.1]
,尽管它仍然会打开,patch 0 0
因为pxcor
值是整数。
看来您实际上需要做的并不是按需要做的-您可以编辑您的问题以提供更多详细信息/上下文吗?也许了解您需要以这种方式建模的原因将有助于提问者将您指向正确的方向。我个人很好奇:
- 为什么你使用
tick-advance
而不是仅仅tick
- 你是如何实现你的每个补丁一个乌龟的限制 - 换句话说,你能展示一个最小的可重现示例吗?这可能会提示其他方法来接近你所追求的。
这是一个时间与刻度相关的示例世界:
globals [ seconds ]
to setup
ca
set seconds 0
resize-world 0 50 0 50
ask patches with [
floor (pxcor / 10) mod 2 + floor (pycor / 10) mod 2 = 1
] [
set pcolor white
]
crt 10
reset-ticks
end
to go
ask turtles [
fd 1
]
set seconds precision (seconds + 0.1) 2
if seconds mod 1 = 0 [print ( word "It has been " seconds " seconds.")]
tick
end
推荐阅读
- constraint-programming - Minizinc:共享索引的部分搜索策略
- javascript - 将过滤器与 vainilla JS 结合,逻辑问题
- python - Pandas 按窗口范围分组(按类别跟进问题)
- flutter-web - Flutter 桌面应用程序图像选择器
- mongoose - 向 mongoose 文档添加所有权
- php - 如何在最后一个循环中删除“AND”(对于每个)
- javascript - 如何在 JavaScript 中将两个数组转换为一个对象?
- amazon-web-services - 如何在 Windows 中解决此错误“[Errno 13] Permission denied: 'C:\\Users\\jiten/.aws/credentials'”?
- c# - 如果 Quartz 有一个参数化的构造函数,它会失败
- mongodb - MongoDB:如何在 mongo 中查找最大排序文档