Netlogo“走向”行为

时间:2019-04-04 13:03:46

标签: netlogo

对于逃避任务,我需要使用NetLogo命令“ towards”,但是它似乎不起作用,或者我听不懂。
我认为应该做的是:给乌龟的前进方向和乌龟与目标之间的连线之间的角度。
这是我为说明问题而制作的简单模型的代码。

to set-up
  clear-all
  create-turtles 2
  ask turtle 0 [
    set xcor 0
    set ycor 0
    set shape "circle"
  ]
  ask turtle 1 [
    set xcor min-pxcor
    set ycor max-pycor
    set heading 135
  ]
end

to go
  ask turtle 0 [ fd 0.1 ]
  ask turtle 1 [ show towards turtle 0 ]
end

这是有关行为的视频。 https://youtu.be/MUBiAypppc4(很抱歉,我无法找到一种方法,不能仅使用YouTube当前的编辑系统替换音频就删除音频,
您必须自己使音频静音)
预期行为的示例:
从0:14到0:19,我希望数字会逐渐减少而不是增加
大约在0:38,我希望数字是0,而不是300左右的地方
在0:38到0:42之间,我希望数字会持续减少或增加,而不会突然出现两次跳跃

某个地方有问题吗?或者“走向”意味着与我想像的有所不同?

1 个答案:

答案 0 :(得分:2)

因此,乌龟0正在移动,乌龟1正在报告向乌龟0的方向。我认为towards工作正常,但是您忘记了世界设置。例如,在14-19年代,从0到1的最短路径是向下和向左(大约220航向),但最短的路径是包裹着世界。您的乌龟可以从一侧移开,而另一侧则进入(如您所见,乌龟1在这样做)。

NetLogo在考虑包装配置的情况下测量距离和方向。它知道从乌龟0到乌龟1的最短路径是从一侧进入另一侧,并报告了乌龟必须沿着该路径移动的方向。

创建一个链接,您可以看到此信息。修改后的代码:

to set-up
  clear-all
  create-turtles 2
  ask turtle 0 [
    set xcor 0
    set ycor 0
    set shape "circle"
  ]
  ask turtle 1 [
    set xcor min-pxcor
    set ycor max-pycor
    set heading 135
    create-link-with turtle 0
  ]
end

to go
  ask turtle 0 [ fd 0.1 ]
  ask turtle 1 [ show towards turtle 0 ]
end