JavaScript中的流量模拟入门

Con*_*uhl 10 javascript simulation simulator

我将在接下来的几个月里提出很多问题.对于我的九年级科学博览会项目,我想创建一个交通模拟器,以测试互连的交通信号灯是否可以增加交通流量.我有几个通用的问题,我需要帮助...

  • 我怎么代表道路?
  • 我怎么让汽车沿路走?
  • 我如何制作汽车开关车道或道路?

我不是在寻找具体的代码,只是很好的指针和资源来帮助我开始.任何帮助表示赞赏,C.Ruhl.

PS我只是在高中所以没有高级数学符号请:)

How*_*ard 7

经常采用的一种可能方法是使用离散模型用于道路和汽车的位置.

道路代表

道路上的每个位置都可以被汽车(蓝点)占用或者是空的.汽车沿着给定的箭头以离散的时间步长移动恰好一个位置(如果目标位置为空).因此,如果汽车不得不减速或停止,它甚至可以切换车道.

您可以通过使用每辆车的单独时间步(模拟更快/更慢的汽车)或以其他许多方式进一步改进它.

通过适当的数据结构定义道路(即位置及其后续位置)后,此模型相对容易模拟,但已经显示出有趣的效果.


Apo*_*sia 7

  1. 忘记用户界面.
  2. 以其基本形式表示每个对象 - 只在其中放置对象属性.例如,汽车将具有移动的尺寸和能力.但它没有逻辑可以让它移动.类似地,交通灯将具有诸如绿色,琥珀色和红色的状态.但它没有在这些状态之间切换的逻辑.类似的道路,车道等课程
  3. 为驱动程序构建不同的类.这个类将包含所有方法,如车道变换,停止,转弯,前进等.从技术上讲,这将是你的"演员",并将作用于veichle.一个类似的演员将用于交通灯控制,它将作用于红绿灯网络.使它成为一个接口并有两个实现 - 一个利用互连性和其他在静态时间运行的实现.
  4. 可选在此对象模型上添加UI.不要花哨,开始有简单的点.一旦你完成所有简单的工作,添加更多花哨的功能应该是容易和无影响(相对).

这将是一个非常具有挑战性的项目.

但如果你的目标是概念证明,我有一个更简单的建议.您可以在这里生成用户,并获得模拟的所有复杂性和所有准确性.从15-20遥控车开始,虚构城镇的纸板模型,模拟交通灯的一些灯泡和一些知道如何驾驶.将预编程的开关序列写在纸上,并指定一些志愿者来控制这些灯.让另一组志愿者控制汽车.如果您有基本电子学方面的实践经验,您可以构建一个定时器控制电路来控制灯光.

一切都是最好的!