如何测量 NetLogo 中的补丁覆盖的距离
How to measure distance covered across patches in NetLogo
我在 NetLogo 中设置了一个模型,其中模拟 space 是我构建的半径为 20 公里的 GIS 地图。
最大 xcor 和 ycor 设置为 20,最小 xcor 和 ycor -20。这给出了 41 x 41 的环面。
我的代理人位于地图中心的补丁 0 0,并且希望他们可以覆盖的最大距离为 20 公里,即 GIS 地图的范围。
ask turtles [
set heading 360
fd 1 ]
如果我将此代码重复 20 次,它们将位于最后一个补丁 (xcor 0 ycor 20) 的中心,这不是 20 公里,我说得对吗?
如果是这样,我该如何编写代码以便代理移动适当的距离。我觉得我想在这里画一个圆圈。
我应该说我可以添加以下行以获得大约 975.6 的色块比例
set patch-scale (item 1 gis:world-envelope - item 0 gis:world-envelope ) / world-width
如果我将补丁比例乘以世界宽度,我得到 40000,鉴于圆的半径为 20 公里,这看起来是正确的。
谢谢
globals [km]
to test
ca
let extent 40 ;desired world-width, in kilometers
set km (world-width / extent)
crt 1 [set heading 360]
ask turtle 0 [fd (20 * km)]
end
我在 NetLogo 中设置了一个模型,其中模拟 space 是我构建的半径为 20 公里的 GIS 地图。
最大 xcor 和 ycor 设置为 20,最小 xcor 和 ycor -20。这给出了 41 x 41 的环面。
我的代理人位于地图中心的补丁 0 0,并且希望他们可以覆盖的最大距离为 20 公里,即 GIS 地图的范围。
ask turtles [
set heading 360
fd 1 ]
如果我将此代码重复 20 次,它们将位于最后一个补丁 (xcor 0 ycor 20) 的中心,这不是 20 公里,我说得对吗?
如果是这样,我该如何编写代码以便代理移动适当的距离。我觉得我想在这里画一个圆圈。
我应该说我可以添加以下行以获得大约 975.6 的色块比例
set patch-scale (item 1 gis:world-envelope - item 0 gis:world-envelope ) / world-width
如果我将补丁比例乘以世界宽度,我得到 40000,鉴于圆的半径为 20 公里,这看起来是正确的。
谢谢
globals [km]
to test
ca
let extent 40 ;desired world-width, in kilometers
set km (world-width / extent)
crt 1 [set heading 360]
ask turtle 0 [fd (20 * km)]
end