【发布时间】:2019-11-10 18:54:39
【问题描述】:
我想计算越过线的海龟 - 我尝试使用“补丁上的海龟”,但如果海龟停止,它会计数两次。如果海龟移动超过 1 个补丁,它就不算什么...... 有任何想法吗?谢谢彼得
【问题讨论】:
标签: netlogo
我想计算越过线的海龟 - 我尝试使用“补丁上的海龟”,但如果海龟停止,它会计数两次。如果海龟移动超过 1 个补丁,它就不算什么...... 有任何想法吗?谢谢彼得
【问题讨论】:
标签: netlogo
从您添加的图片看来,您正在运行一个单车道交通模型,其“终点线”非常窄,海龟可以在一个刻度内完全穿过。
捕捉过境点:
您可以做的一件事是在终点线的另一侧画一条更粗的“线”。也许让它宽5个补丁。您可以在测试时将其着色为黄色,并在确定它正常工作时将其更改为隐藏。如果海龟在那个补丁上,它已经越过了这条线。如果你让它足够宽,它应该不可能以任何速度跳过。只使用一只乌龟并缓慢运行模型应该很容易测试。
统计停车车辆数:
如果没有看到您的代码,就很难知道您为什么要计算两次停止的汽车。您可以在这里发布您的代码或相关部分吗?我猜你有一些全球性的,每次你找到一辆新的停住的汽车时你都会增加。
让汽车拥有像“stopped?”这样的变量效率较低,但更可靠。当汽车越过线时,您初始化为 false 并设置为 true。然后您可以随时获得准确的停车车辆计数
count cars with [ stopped? = true ]
假设您有一个名为 my-count of stop cars 的变量,并且您想查看它何时出错,您可以插入如下代码行
if mycount != count cars with [stopped? = true] [user-message "count is wrong!"]
【讨论】:
如果这条线肯定是垂直的(如您的图表中所示),那么最简单的方法可能是简单地将 pxcor 的海龟 pxcor 大于线所在的任何坐标加上汽车尺寸。
【讨论】: