当我们邀请一只海龟去forward 2时,这是否意味着:
(pxcor, pycor)哪一个是对的?或者他们的答案是一样的?
我们如何定义这只海龟所指向的最近的补丁?下面的理解正确吗?
发布于 2015-12-21 16:10:32
它意味着向前移动1。查看这一点的最简单方法是使用以下代码:
to setup
clear-all
create-turtles 1
[ setxy 0 0
set heading 45
forward 1
print xcor
print ycor
]
end试着改变标题,看看会发生什么。注意,补丁的宽度正好是1单位,补丁的中心是整数值(所以补丁0 0从XCOR-0.5扩展到xcor +0.5)
发布于 2015-12-22 15:23:33
forward完全忽略补丁边界和补丁中心,所以1-3都是不正确的.补丁不会进入它,它只是海龟的x和y坐标上的三角函数。具体来说,forward 1只是setxy (xcor + sin heading) (ycor + cos heading)的意思。目标补丁只是新的x和y坐标恰好位于其中的任何补丁。目的地可能是补丁中心,也可能不是补丁中心。
forward 1可能会将海龟留在同一个补丁中(例如,如果海龟位于向东北方向的补丁的西南角;对角线的长度为1.414.,因此forward 1不足以到达新的补丁)。或者,forward 1可以带海龟到前面最近的地方,或者到前面最近的地方。(后者可能会发生,如果海龟只是擦拭一个补丁的角。)
一个可以用来探索和理解所有这些可能性的好模型是Next示例,在NetLogo的模型库的代码示例部分
至于你问题的第二部分,你的定义只有在海龟最初站在斑块中心时才是正确的。对于一般情况,下一个修补程序示例也回答了这一点。该模型中的next-patch过程与您的定义类似,但处理一般情况。
https://stackoverflow.com/questions/34391882
复制相似问题