【问题标题】:simulate traffic in roundabouts模拟环形交叉路口的交通
【发布时间】:2015-12-24 01:48:41
【问题描述】:

我编写了红色汽车右转的算法,方向是从右行驶(航向 = 90)朝向航向 = 180。 但它的车右转,也跟着走。怎么到了一定程度,首先是拐弯向航向180前进

我尝试了一些没有正确结果的代码? [

 ifelse heading = 90 
  [
    if distancexy 0 0 < 30
    [
      rt 22
      fd speed
      if xcor = -2
      [
        set heading 180
        fd speed
      ]
    ]

  ]
  [
    fd speed
  ]

或者我这样写代码?

ifelse heading = 90 
  [
    if distancexy 0 0 < 30
    [
      rt 22
      fd speed
      if ycor = -30
      [
        set heading 180
        fd speed
      ]
    ]

  ]
  [
    fd speed
  ]

【问题讨论】:

    标签: netlogo


    【解决方案1】:

    您正在使用 xcor = -2ycor = -30 之类的确切条件,但这些条件可能永远不会成立。

    NetLogo 海龟移动不顺畅。他们从一个点跳到另一个点。想象一下乌龟从它的旧位置消失并重新出现在它的新位置。乌龟没有通过中间的所有点。

    例如,假设您的海龟的 xcor 为 -2.2,并且面向东方。如果海龟做fd 1,它的新xcor 将为-1.2。但这并不意味着xcor = -2 的代码会运行。乌龟的 xcor 从来都不是-2。一瞬间,它是-2.2。下一瞬间,是-1.2。所以xcor = -2 从来都不是真的。

    您可能希望使用pxcor = -2(整个补丁中的任何地方都为真)或xcor &gt; -3 and xcor &lt; -2 之类的条件,而不是xcor = -2 之类的条件。

    JenB 已经在一周前通过 https://stackoverflow.com/a/34313275/86485 告诉过你一次。我只是再说一遍。了解这一点至关重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      • 2010-09-22
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多