Netlogo-将补丁缩小以清楚显示聚集在一个小区域中的所有座席位置

时间:2018-12-24 06:35:16

标签: coordinates netlogo patch gridworld

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

1 个答案:

答案 0 :(得分:2)

您需要做的就是编写一个函数,将x和y坐标重新缩放为NetLogo范围。然后,只要您引用真实世界的坐标,就只需调用该函数。有关与您的世界中的补丁程序数量无关的功能,请参见下文。如果您想要靠近或远离边缘,则可能需要弄乱函数的最大值和最小值。另外,我还要添加一个错误检查(如果您不小心尝试了超出预定义的最大和最小坐标,该函数将显示一条有意义的消息。)

运行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中并设置信封。世界将会调整。