【问题标题】:Netlogo Cars MergingNetlogo 汽车合并
【发布时间】:2017-04-24 00:07:41
【问题描述】:

我正在模拟一条单车道道路与一条两车道道路合并,都朝着同一个方向行驶。未合并的汽车 (cars1) 检查半径 2 内的合并汽车,看是否需要换到左侧车道,如果需要,则汽车检查左侧车道是否安全。

ask cars1[
   if (not any? turtles-at -2 4) and (not any? turtles-at -1 4) 
   and (not any? turtles-at 0 4) and (not any? turtles-at 1 4) 
   and (not any? turtles-at 2 4) and (not any? turtles-at 3 4) 
   and (any? merging-cars in-radius 3)
   [  set ycor 2]]

如果最近车道上的汽车 1 变到左侧车道不安全,我正在尝试让合并的汽车停下来。

ask merging-cars[
  loop[
  if[any? cars1 in-radius 2]
  [stop]
  ]]

那是不工作的代码。我还没有想出办法让合并的汽车在不安全时停下来,在安全时离开。

谢谢

【问题讨论】:

  • 您看过模型库中的“Traffic 2 Lanes”模型吗?它可以作为合并行为的一个例子——模型中的汽车不会撞车,但只有在它们试图进入的车道上有空间时才会改变车道。
  • 是的,我看过它,它在我的模拟的某些部分有很大帮助,但在这种情况下没有帮助。我需要合并车检查它是否安全,如果不安全,他们需要停下来等到安全合并。
  • 对。您能否编辑您的问题以包含一个可重现的示例(如MCVE guidelines)?有几种方法可以满足您的需求,但如果没有看到更多细节和背景,就很难提出最佳选择。

标签: netlogo


【解决方案1】:

为了让您走上正确的道路,请查看 not any?文档并记下您可以将要检查的角度以及右或左与以下命令合并:

not any? turtles-on patch-right-and-ahead 60 2

这是在说....检查该海龟前方右侧 2 个补丁的 60 度角。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-19
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多