Netlogo - 使补丁更小以清楚地显示所有代理的位置聚集在一个小区域

Netlogo - make patches smaller to display clearly all agents ' locations clustered in a small area

我正在为一个城市的配送系统建模。交付分支机构的位置是基于现实世界的坐标。如何制作一个更小的 netlogo 世界,可以清楚地显示定义区域中的所有代理(min-x:113.783131,max-x:114.42618;min-y:22.476584,max-y:22.809712)?现在的netlogo世界实在是太大了,无法让每个agent都可见(它们都聚集在一个小点)

您需要做的就是编写一个函数,将您的 x 和 y 坐标重新缩放到 NetLogo 范围内。然后只要你引用真实世界的坐标就调用那个函数。请参阅下文了解与您的世界中的补丁数量无关的功能。如果您想靠近或远离边缘,您可能需要 fiddle 函数中的最大值和最小值。此外,我会添加一个错误检查(因此,如果您不小心尝试询问预定义的最大值和最小值之外的坐标,该函数会打印一条有意义的消息)。

运行 testme 看看它做了什么。

to testme
  clear-all
  create-turtles 1
  [ setxy fix-x 113.8 fix-y 22.6 ]
  create-turtles 1
  [ setxy fix-x 114.49 fix-y 22.8 ]
end

to-report fix-x [#x]
  let minx 113.5
  let maxx 114.5
  report ((#x - minx) / (maxx - minx)) * (max-pxcor - min-pxcor) + min-pxcor
end

to-report fix-y [#y]
  let miny 22.45
  let maxy 22.82
  report ((#y - miny) / (maxy - miny)) * (max-pycor - min-pycor) + min-pycor
end

来自评论的更新:如果您确实有一个 GIS 数据集,只需使用 GIS 扩展将其加载到 NetLogo 中并设置包络。世界会调整。