NetLogo:跟踪和测量真正的海龟运动?
NetLogo: track and measure real turtle movement?
我的海龟可以通过相关的随机游走在世界范围内跳跃/前进。我怎样才能简单地测量他们在我的模拟中走过的距离 运行?原语 distance
和 distancexy
似乎测量两点之间的最短距离,而不是 "curved" 那个。我已尝试 google 答案,但找不到任何可能的解决方案。可能吗?
此外,当我使用 "pen-down" 跟踪海龟运动时,它从第二个运动开始,而不是从第一个运动开始。任何想法为什么?它不取决于 tick
在 go
过程中的位置。非常感谢!
由于你没有提供任何代码,我不能说你的模型有什么问题,但我用一个非常简单的配置尝试了你的问题
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
我的海龟可以通过相关的随机游走在世界范围内跳跃/前进。我怎样才能简单地测量他们在我的模拟中走过的距离 运行?原语 distance
和 distancexy
似乎测量两点之间的最短距离,而不是 "curved" 那个。我已尝试 google 答案,但找不到任何可能的解决方案。可能吗?
此外,当我使用 "pen-down" 跟踪海龟运动时,它从第二个运动开始,而不是从第一个运动开始。任何想法为什么?它不取决于 tick
在 go
过程中的位置。非常感谢!
由于你没有提供任何代码,我不能说你的模型有什么问题,但我用一个非常简单的配置尝试了你的问题
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