对于逃避任务,我需要使用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之间,我希望数字会持续减少或增加,而不会突然出现两次跳跃
某个地方有问题吗?或者“走向”意味着与我想像的有所不同?
答案 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