NetLogo:跟踪和测量真正的海龟运动?

NetLogo: track and measure real turtle movement?

我的海龟可以通过相关的随机游走在世界范围内跳跃/前进。我怎样才能简单地测量他们在我的模拟中走过的距离 运行?原语 distancedistancexy 似乎测量两点之间的最短距离,而不是 "curved" 那个。我已尝试 google 答案,但找不到任何可能的解决方案。可能吗? 此外,当我使用 "pen-down" 跟踪海龟运动时,它从第二个运动开始,而不是从第一个运动开始。任何想法为什么?它不取决于 tickgo 过程中的位置。非常感谢!

由于你没有提供任何代码,我不能说你的模型有什么问题,但我用一个非常简单的配置尝试了你的问题

turtles-own[
   dist
]

to setup

   clear-all
   ask n-of 10 patches [sprout 1]
   ask turtles [pen-down set dist 0]

end

to go 

   ask turtles [
      rt random 90
      lt random 90
      fd 1
      set dist dist + 1 
      set label dist
   ]

end

每个刻度的每只海龟都会随机转向并向前移动。

每只海龟都有一个名为 dist 的自己,它会在它每走一步时增加,并显示为它的标签。 (这样你就可以随时看到海龟走过的总距离,但它总是可以用于其他目的)

每只乌龟都已 pen-down 激活以绘制其所有动作。我怀疑在你的模型中你在移动阶段后为所有海龟激活 pen-down,所以在第一步海龟不画任何东西。

基于@dr_stein 建议的另一个答案 - 如果我的海龟以随机步数 (fd random 4) 行走,而不是稳定的 fd 1。因此,我实现了使用局部变量 my_dist - 生成随机数,这个数字用于距离测量和海龟移动。

turtles-own[
   dist
]

to setup    
   clear-all
   ask n-of 1 patches [sprout 1]
   ask turtles [pen-down set dist 0]
end

to go     
   ask turtles [
      rt random 90  lt random 90 ; rotate turtle heading
      let my_dist random 4      ; create local variable my_dist (generated one time)
      fd my_dist                ; move forward using local variable distance 
      set dist dist + my_dist   ; include this distance into dist calculation 
      set label dist
   ]    
end