Netlogo:使用距离和刻度间隔测量时间

时间:2016-05-03 19:46:23

标签: netlogo

我有一个模型,我想根据地图的比例,“速度”或行程距离来测量乌龟从一个地方到另一个地方所需的时间(地图比例为1000m x 1000m每个地块供参考) ,以及在一个刻度(以秒为单位)内经过的所需时间。

我正在尝试使用一个名为totaltime的海龟自己的变量计算所需的总时间。

  • 总时间是通过将滴答总数减去额外滴答数然后乘以时间间隔(最后一行代码)来确定的。
  • 计算额外的刻度,因为当船舶直接移动到列表中的补丁中心时,循环必须运行。这是必要的,因此可以从列表中删除补丁,允许乌龟搜索列表中的下一个补丁等等(在ifelse语句中)。

额外刻度的使用可能是多余的,跳到精确的补丁位置肯定不是让乌龟遍历补丁列表的最佳方式。不幸的是,我是netlogo的新手,并且对ticks和正确的上下文(乌龟,观察者等)的概念没有很好的把握。如果有人能帮助我,我会非常感激,因为我一直试图解决这个问题太久了。

> to move
>           set speed 40
>           set time-interval 1
>           set ship-distance (time-interval / 3600) * speed 
>           set extra-ticks 0
>           tick
>           ask ships with [length current-path != 0] 
>               [       
>                 go-to-next-patch-in-current-path 
>               ]
>         end
>         
>         to go-to-next-patch-in-current-path  
>           face first current-path
>           set total-ticks total-ticks + 1
>           ifelse distance first current-path <= ship-distance
>             [
>               set extra-ticks (1 - (distance first current-path / ship-distance)) + extra-ticks
>               print (distance first current-path / ship-distance)
>               move-to first current-path
>               set current-path remove-item 0 current-path
>             ]
>             [
>               set normal-ticks normal-ticks + 1
>               fd ship-distance
>             ]
>       
>           set totaltime  (ticks - extra-ticks) * time-interval / 60   
>         end

0 个答案:

没有答案