如何在 NetLogo 中测量跨补丁覆盖的距离



我在NetLogo中设置了一个模型,其中模拟空间是我构建的半径为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

最新更新