




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 C 语言下的交通模拟灯软件开发设计毕语言下的交通模拟灯软件开发设计毕 业论文业论文 目目 录录 1 绪论 1 1 1 我国城市交通现状及改善措施 1 1 2 课题研究的目的意义 3 1 3 国内外研究现状 3 1 4 论文研究内容 5 2 软件设计 6 2 1 开发思想 6 2 2 功能逻辑 6 2 3 开发环境 7 2 4 功能流程图 7 2 5 数据结构设计 8 2 5 1 交通灯类设计 8 2 5 2 公路车辆类设计 9 2 6 关键算法设计 10 2 6 1 设置交通红绿灯亮的时间算法 10 2 6 2 交通灯交替变亮算法 11 2 6 3 车辆产生位置算法 14 2 6 4 堵塞车辆减少算法 15 2 6 5 车辆流速控制算法 16 2 7 界面接口函数 17 3 软件菜单界面 19 3 1 注意事项 19 3 2 交通灯时间控制说明 19 3 3 车辆随机时间说明 20 2 3 4 车辆堵塞统计说明 20 3 5 主界面 20 4 软件使用例子 22 4 1 设置交通灯时间 22 4 2 查看车辆随机时间 22 4 3 查看堵塞车辆统计 23 4 4 查看车辆行驶 24 5 结论 25 5 1 实现功能 25 5 2 功能不足 25 参考文献 26 致谢 27 附录 部分代码 28 附 A 南北交通灯实现代码 28 附 B 西东车辆和路况实现代码 32 附 C 主控制实现代码 35 1 1 绪论 1 1 我国城市交通现状及改善措施 自改革开放以来 我国的城市规模和经济建设都有了飞速的发展 城市化进程 在逐步加快 城市人口在急剧增加 大量流动人口涌进城市 人员出行和物资交流 频繁 使城市交通面临着严峻的局势 城市交通是保持城市活力最主要的基础设施 是城市生活的动脉 制约着城市经济的发展 当前 全国大中城市普遍存在着道路 拥挤 车辆堵塞 交通秩序混乱的现象 我国城市的交通现状有如下几点问题 1 城市规模逐步扩大 运输压力沉重 改革开放以来的 20 多年 我国取得 了持续高速经济增长和大规模城市化的辉煌成就 城镇化水平从 1978 年的 17 9 提 高到 2002 年的 39 1 年均增长 0 88 个百分点 而大量人员出行和物资交流频繁 使城市交通面临着沉重的压力 2 机动车增长加快 道路容量不足 最近几年城市机动车增长速度迅速 轿 车 客车 面包车以至于摩托车增幅年平均在 15 以上 而与之对应的人均道路面 积一直处于低水平状态 虽然近十年已经有了较快发展 人均面积由 2 8 平方米上 升到 6 6 平方米 仍然赶不上城市交通量年均 20 的增长速度 3 路网不合理 交通管理水平低下 我国城市路网一般都是密度低 干道间 距过大 支路短缺 功能混乱 属于低速的交通系统 难以适应现代交通的需要 交通控制管理和交通安全管理的现代化设施不能满足现实的需求 4 公共交通萎缩 出行结构不合理 从 80 年代后期开始 城市公共汽车交 通持续萎缩 从运营效率到经营管理 从服务水平到经济效益 出现了全面的衰退 虽然公交车辆好线路长度增长许多 但公交车辆的运营速度不断下降 新增的运力 被运输效率低下所抵消 由于公共交通受到冲击 被转移出来的乘客便要寻找其他 出行方式 加剧出行结构的不合理 因此应加快城市交通系统的发展 充分发展城市交通方便 快捷 载运量大的 特点 因此应从以下几方面改善城市现有公共汽车交通 1 城市公共汽车交通线路 城市公共交通线路应与城市主要客流流向一致 在城市中公共交通线路应分设 为主线和支线 主线主要是连接客流集散点和交通枢纽 在百万人口以上的大城市 中 客流集中的客运枢纽应设置快速直达公共交通线路 一般可以通过调查的方式 获取直线接的数据来综合规划且应与城市总体规划协同进行 专用车道的使用中 2 尽理使专用车道与其它车道隔离 可使用专用的隔离带并配有专用车道监视系统 2 城市公共交通线路网密度 通常汽车城市公共交通线路的规划密度 在市中心 3 4km km2 城市边缘地区 2 2 5km km2 干线之间的距离为 600 1000m 步行时间不超过 4 6min 为宜 城市 市区公共汽车要线路的长度宜为长度宜为 8 12km 线路过长则会造成乘客候车时间长 公交车到站准时率不好等一系列的弊端 3 公共汽车调度与组织 车辆调度优化是决定公共交通正常和高效运转的重要因素 可以根据客流的变 化和具体的营运条件及其他条例 安排不同车型的车辆和行车组织路线 如在高峰 小时客流集中的干线上用大容量的车辆组织大站距快车或区间车 在客流较大而街 道窄 转弯半径小而客流集中的街区用短车身公共汽车 此外还可以利用一些智能 化的管理手段 例如 公共交通车辆自动临界控系统 国际统称 AVMcautomaticvehiclemonitoringsystem 它能够在调度室之间建立起高效的信息通 道 有效沟通两者之间联系 GIS GPS 主要用由车辆调度 目标跟踪和动态交通 流数据采集上 GIS 应用于交通地理信息的可视化管理与交通信息的动态显示上 此外还可以使用可变信息情报板 广播 路边公用电话 公共计算机网络终端 使 已在途中的公交用户在路边 公交车站或站台上及公交车辆上 获取实时公交出行 服务信息 4 协调公交汽车与出租汽车运营管理 出租汽车为乘客提供门到门服务的较高层公共交通工具 它的使用率不及公共 汽车且能耗高 废气污染严重 完成单位运量所占用的道路时空资源大等弊端 因 此应根据城市发展水平和实际需要来加强出租车行业管理和经营管理 使其公交汽 车协调发展 5 车辆技术的改进 我国公共汽车按载客量分小型 载客 60 90 人 中型 载客 90 130 人 和大 型铰接车 载客 130 180 人 应根据实际客运量来调配恰当车型以减少车辆空资源 率 此外还应满足乘客对城市公共汽车乘座舒适性和方便乘客上下车的要求 开发 独立悬架式 专用公共汽车底盘和低地板城市公共汽车 使公交车的踏板和通道离 地高度高以降低汽车重心来满遗产乘坐舒适性的要求 还应适时更换车辆 一般公 共汽车最佳使用年限为 5 6 年 超期服役的公共汽车会产生噪声大 尾气多 机械 故障多等一系列的缺点 随着科技发展 许多国家也研发出诸多应用了高科技成果 的现代公交汽车 例如 日本发明了下一代 中距离城市间交通系统的无人驾驶公共 汽车 德国研制开发的一种城市用公共客运车辆 这种新型车可以沿固定线路运行 3 且把传统公共汽车和有轨电车的优点结合起来 6 公共交通优先发展策略 城市公共交通作为道路空间点用要求少 环境污染低 能源消耗小的交通应优 先发展 此外我国城市多属密集型 因此 以公共交通系统为主 其它交通形式为 辅的形式是我国城市客运交通结构必然的发展方向 常用的公交优先方式有两类 根据实际情况设置公共汽车专用车道或公交专用 道路等 交叉口化先 交叉口上的公交优先措施主要有专门的公交相位 设置专门 的公交车入口车道以及其他一些特殊的公交车优先排队与通行措施等 城市公共汽车交通是城市交通系统的主体 是沟通着社会生产各个环节的重要 环节 也是决定城市建设各发展的重要基础之一 因此加快城市公共汽车发展 1 2 课题研究的目的意义 在现代社会中 交通问题已成为影响和制约国民经济发展的重大因素 而城市 交叉口是城市道路网络的关节点 对其进行深入的研究是解决城市交通问题的关键 所在 城市交叉口中影响交通车流量最大的主要就是各路口各方向的交通灯的红 绿 灯亮的时间 如果各方向的红绿灯亮的时间不合理 不以实际各方向车流量的多少 而设置红绿灯亮的时间 就会出现很严重的交通堵塞情况 因此 设计出城市交通灯各灯的开启时间 使得车流量最大 这对于城市交通 问题的解决 是有着积极推动作用的 即在有限的道路资源条件下 尽可能大的提 高交通运输能力 1 3 国内外研究现状 交通模式理论及最新进展反映了交通要素 交通结构及交通效率的主要特征 发达国家自 20 世纪 40 年代开始 相继制定出台了有关政策来引导城市交通规划和 建设 这些不同的交通发展政策形成了不同的交通模式 概括起来大致分为三种类型 第一类是依赖小汽车发展的城市 发达国家如美国 小汽车拥有率和使用率都 很高 但是已经越来越受到能源短缺的影响 发展中国家如泰国 虽然人均小汽车 拥有水平与发达国家相比还相差不少 但对小汽车的拥有和使用却不加任何限制 已大大超出路网及环境的承受能力 第二类是小汽车与发达的轨道交通同步协调发展的城市 如英国伦敦 法国巴 4 黎 日本东京和大阪等 小汽车拥有率不低于北美城市 但是使用率很低 主要靠 地铁来通勤 第三类城市主要依赖公共交通 抑制小汽车增长和使用 以此来支持城市高密 度发展 如新加坡 香港 面对日益严重的交通拥堵问题 世界各国都在积极探索有效的交通模式 美国 采取 TOD 模式和新都市主义 发挥交通先导的作用 协调交通与土地利用的关系 促进了城市发展与城市交通的协调 英国伦敦采取设置公交车道 创造优先区域 鼓励停车换乘和中心区拥挤收费等措施 形成了一套发展公共交通的有效模式 日本东京大力实施以轨道交通为中心的公共交通优先发展战略 轨道交通成为 绝大多数东京市民的首选 有效地缓解了交通拥挤现象 中国的一些大城市 通过吸收和借鉴国际经验 积极倡导建设轨道交通 公交 专用道等 通过大力发展公共交通来缓解日益严峻的城市交通问题 优先发展城市 公共交通成为中国城市交通发展的方向 目前 我国城市交通管理体制主要有以下三种模式 一是由交通 城建 市政 公安等部门对城市交通实施交叉管理的传统管理模式 二是由交通部门对城乡道路 运输实施一体化管理的模式 三是 一城一交 综合交通管理模式 从以上三种模式的实施效果来看 模式一 由交通 市政 城建 公安等部门对交通实施交叉管理 交通局负责 公路运输 公路和场站规划建设以及水路交通运输的行业管理 市政公用局负责城 市公交和城市客运出租汽车的管理 市城建部门负责城区的道路规划与建设 这种 模式由于部门管理分头领导 职能交叉 分工不明 因而政出多门 政令冲突 主 要实施城市有南京 福州 昆明 南宁 成都 杭州等城市 模式二 实行城乡道路运输一体化管理 典型特征是 实现了交通部门对交通 的管理 整合了道路运输资源 但不具备对城乡交通统一战略 统一规划 统一政 策和统一建设的职能 这种模式也最普遍 主要有沈阳 哈尔滨 乌鲁木齐 西宁 长沙 兰州等市在实施 模式三 实行 一城一交 综合交通管理模式 该模式主要职能 市交通委员会 是市政府组成部门 负责交通运输规划 道路和水路运输 城市公交 出租汽车的 行业管理 并负责对城市内的铁路 民航等其他交通方式的协调 典型特征是 实 现了道路运输管理的一体化 但在交通基础设施的建设养护方面尚未形成集中统一 管理 代表城市有北京 广州 重庆 深圳 武汉 此外 我国一些城市还进行了公交管理体制的改革试点 取得了较理想的效果 如上海的 三制 改革 即先是票制改革 取消月票 实行普票 其次是机制改革 5 优化财政补贴 实现良性循环 再次是体制改革 实行多家经营 形成竞争格局 改革后 传统计划经济体制下的 等 靠 要 变成了市场经济条件下的 争 创 抢 争客流 创效益 抢市场 企业的经营思路 分配机制 管理思想更加灵活 班 次 车辆 线路都得到了有效保证 司乘人员服务更热情 乘客对公交的满意程度 显著提高 公交系统连续多年大幅度亏损的势头得到了有力遏制 部分企业做到了 收支平衡 1 4 论文研究内容 本文通过设计一款模拟城市交叉口交通灯软件来管理交通 模拟交通系统运行 情况的具体情况 在一定的假设情况下 制定一些符合实际和遵循假设的规则 以 模拟道路网络的车辆运行情况的方法 对其进行研究 也就是交通仿真模拟 交通仿真技术是利用现代系统工程和计算机仿真技术成果发展起来的新的交通 研究方法 它对于描述多变的 复杂的随机性过程非常有效 通过运用这种仿真技 术 在计算机的环境下得以实现 可以更有效地掌握道路交叉口的各种复杂情况 对交通灯的开启时间进行研究 设计出城市交通灯各灯的开启时间 使得车流量最 大 这对于城市交通问题的解决 是有着积极推动作用的 即在有限的道路资源条 件下 尽可能大的提高交通运输能力 城市交通灯的开启时间间隔的问题 在一些假设的基础之上 把城市交通灯周 期时间控制问题进行简化 目的是使得路口的日平均车流量最大 根据实际情况 给出车辆行驶的一套规则 利用计算机仿真技术进行模拟 得到最优交通灯的间隔 时间 综上所述 本论文的内容即为设计一款软件 用来模拟城市交叉口的车辆流 可以设置各方向的车辆流的多少 从而通过设置不同的红绿灯亮的时间来观查交通 堵塞情况 从而根据各个交叉口的实际车辆流来得到各路口各方向最佳的交通灯的 红 绿灯亮的时间 尽量避免堵塞 使得日平均车流量最大 6 2 软件设计 2 1 开发思想 研究的主要方法是用一种计算机语言来开发交通灯模拟管理软件 然后操作软 件设置各方向的车辆流多少 再设置各方向的红绿灯亮的时候来观查交叉口的交通 情况 从而得到比较合理的红绿灯亮的时间 交通灯模拟管理软件开发语言 C 语言 用这个语言可以开发可视化软件 给 人一视觉上的感觉 能更好的观查 交通灯模拟管理软件的功能实现大概步骤 先实际观测交叉口各方向的车辆流 的多少 然后设置随机生成车辆时间时隔来控制各方向的车辆流 接着设置各方向 的红绿灯交换时间间隔 观查交叉口车辆的交通情况 记录堵塞程度 通过设置不 同的各方向的红绿灯交换时间来观查不同的交通情况 从而得出比较适合此交叉口 的红绿灯交换时间 2 2 功能逻辑 交通灯模拟管理软件的假设条件 设城市的道路宽度都相等 道路上双向行驶 车辆 不考虑中途停车 交通灯模拟管理软件要模拟交叉口车流情况 因此需要注意一下事项 1 异步随机生成按照各个路线行驶的车辆 例如 由南向而来去往北向的车辆 直行车辆 由西向而来去往南向的车辆 右转车辆 由东向而来去往南向的车辆 左转车辆 2 信号灯忽略黄灯 只考虑红灯和绿灯 左转车辆受信号灯控制 右转车辆 不受信号灯控制 3 具体信号灯控制逻辑与现实生活中普通交通灯控制逻辑相同 不考虑特殊 情况下的控制逻辑 4 南北向车辆与东西向车辆交替放行 同方向等待车辆应先放行直行车辆而 后放行左转车辆 5 每辆车通过路口时间为 1 秒 6 随机生成车辆时间间隔以及红绿灯交换时间间隔自定 可以设置 7 2 3 开发环境 开发语言 C 开发工具 Microsoft Visual Studio 2008 运行系统 Windows 系列系统 2 4 功能流程图 软件功能流程图如图 2 1 不合理 合理 图 2 1 开始 设置交通灯 亮的时间 设置车辆出 现时间隔 时间间隔 为随机 观察交通堵 塞情况 分析判断 结束 8 2 5 数据结构设计 2 5 1 交通灯类设计 在软件开发当中 将交通红绿灯设计为一个类 其中包括交通灯的属性和行为 属性为交通灯要呈现出红绿灯的状态 行为为交通红绿灯亮的时间和红绿灯交替的 变化 交通灯类的设计如下表 2 1 交通灯类的设计 表 2 1 类名 snTrafficLightCtrl 以南从北的交通灯为例子 实现形态 类成员变量 构造灯结构体 struct Light private Light lLight sLight rLight 左行灯 直行灯 右行灯 int iLGTime 20000 左行绿灯亮的时间 int iLRTime 106000 左行红灯亮的时间 int iSGTime 40000 直行绿灯亮的时间 int iSRTime 86000 直行红灯亮的时间 int currentSIndex 0 当前直行灯的状态 int currentLIndex 0 当前左行灯的状态 public snTrafficLightCtrl 构造函数 public int CurrentSLightIndex 得到当前直行灯的状态 public int CurrentLLightIndex 得到当前左行灯的状态 public void SetLGTime int lgTime 设置左行绿灯亮的时间 public void SetLRTime int lrTime 设置左行红灯亮的时间 public void SetSGTime int sgTime 设置直行绿灯亮的时间 public void SetSRTime int srTime 设置直行红灯亮的时间 9 类成员函数protected override void OnPaint PaintEventArgs e 绘图 public void TurnGreen int nLight 控制直行红绿灯的转变 public void TurnGreen2 int nLight 控制左行红绿灯的转变 private void Resize private void timer1 Tick object sender EventArgs e 控制直行红 绿灯转变的定时器 private void timer2 Tick object sender EventArgs e 控制左行红 绿灯转变的定时器 private void trafficLightCtrl Load object sender EventArgs e 2 5 2 公路车辆类设计 在软件开发当中 将公路和车辆设计为一个类 其中公路就是设计画出车道和 车栏 车辆有属性和行为 属性为车辆排队的位置和当前排队的数目 行为为车辆 的绘画等 公路车辆类的设计如下表 2 2 公路车辆类的设计 表 2 2 类名 snRoadCar 以南从北的公路车辆类为例子 实现形态 类成员变量 int currentSCarNum 2 南从北直行车辆数 int currentLCarNum 1 南从北左行车辆数 int i 0 int xL 0 左行车辆位置的 X 坐标值 int xS 0 直行车辆位置的 X 坐标值 int width 0 公路宽度 int height 0 公路长度 public Color FillColor Color FromArgb 0 0 0 public snRoadCar 构造函数 10 类成员函数 public int CurrentSCarNum 得到当前直行车辆数 public int CurrentLCarNum 得到当前左行车辆数 public void Paint Graphics g 绘公路和车辆 private void timer1 Tick object sender EventArgs e 控制直 行车辆产生的定时器 private void timer2 Tick object sender EventArgs e 控制左 行车辆产生的定时器 private void snRoadCar Load object sender EventArgs e 2 6 关键算法设计 2 6 1 设置交通红绿灯亮的时间算法 现实状况 众所周知 一个方向的车流分为三个小方向 向右拐 直行 向左 拐 这三个方向对应着三个交通灯 每个交通灯会红 黄 绿三种颜色交替变化来 控制本方向的车辆行驶 且每个灯的红绿灯持续亮的时间是不同的 需要根据实际 交通情况来设置交通红绿灯亮的时间 软件情况 此版交通灯模拟软件 暂不考虑黄灯亮的情况 因此此版软件能设 置各个方向的红灯和绿灯亮的时间 算法思想 如下图 2 2 北 d a b 西东 c 南 图 2 2 11 如图所示 南北直行的时间等于南北左行时间加上东西方向直行时间与左行时 间之和 即 a b c d 算法思路 在界面提供一个可以供使用人填写控制南北直行的交通灯红绿灯亮的时间的 文字框 当点击确定时取出所填的数字值 然后根据以下算法算出其余方向红绿灯 亮的时间 1 南北左行绿灯亮的时间为南北直行绿灯亮的时间的一半 2 南北左行红灯亮的时间为南北直行红绿灯亮的时间之和减去左行绿灯亮的 时间 3 东西左行绿灯亮的时间为南北左行红灯亮的时间减去南北直行后再除以 3 4 东西直行绿灯亮的时间为东西左行绿灯亮的时间的 2 倍 5 东西直行红灯亮的时间为南北直行和左行绿灯亮的时间之和加上东西左行 绿灯亮的时间 6 东西左行红灯亮的时间为南北直行和左行绿灯量的时间之和加上东西直行 绿灯亮的时间 算法代码 以南向北的交通红绿灯为例 1 得到南北直行时间 2 iNSSRedTime Convert ToInt32 nsSRedTime Text 85 3 iNSSGreenTime Convert ToInt32 nsSGreenTime Text 40 4 5 得到南北左行时间 6 iNSLGreenTime iNSSGreenTime 2 20 7 iNSLRedTime iNSSRedTime iNSSGreenTime iNSLGreenTime 105 8 this nsLReadTime Text Convert ToString iNSLRedTime 9 this nsLGreenTime Text Convert ToString iNSLGreenTime 10 11 得到东西直行时间 12 iWESRedTime iNSSGreenTime iNSLGreenTime 75 13 iWESGreenTime iNSLRedTime iNSSGreenTime iNSLGreenTime 3 2 30 14 this weSRedTime Text Convert ToString iWESRedTime 15 this weSGreenTime Text Convert ToString iWESGreenTime 12 16 17 得到东西左行时间 18 iWELGreenTime iWESGreenTime 2 15 19 iWELRedTime iWESRedTime iWESGreenTime iWELGreenTime 90 20 this weLRedTime Text Convert ToString iWELRedTime 21 this weLGreenTime Text Convert ToString iWELGreenTime 2 6 2 交通灯交替变亮算法 现实状况 众所周知 一个方向的车流分为三个小方向 向右拐 直行 向左 拐 这三个方向对应着三个交通灯 每个交通灯会红 黄 绿三种颜色交替变化来 控制本方向的车辆行驶 而且有几点需要特别注意 1 右拐车辆不受交通灯限制 右拐交通灯一直为绿灯亮 2 当直行交通灯为绿灯时 左行交通灯为红灯 3 当直行交通灯从绿灯变为红灯时 左行交通灯变为绿灯 4 当左行交通灯从绿灯变为红灯时 直行交通灯仍为红灯 5 南北直行 南北左行 东西直行 东西左行在同一时间只能有一个方向的 灯为绿灯 其余灯为红灯 软件情况 此版交通灯模拟软件 暂不考虑黄灯亮的情况 其余与现实完全相 同 算法思想 南北直行 南北左行 东西直行 东西左行每个方向设置一个定时器 负责 交通灯红绿灯转变 1 先设置南北直行绿灯先亮 其余方向为红灯亮 2 设置南北左行定时器时间为南北直行绿灯亮的时间 等南北直行变为红灯 时 南北左行就会变为绿灯 3 设置东西直行定时器时间为南北直行和左行绿灯亮的时间之和 等南北左 行变为红灯时 东西直行就会变为绿灯 4 设置东西左行定时器时间为南北直行和左行绿灯亮的时间之和加上东西直 行绿灯亮的时间 等东西直行变为红灯时 东西左行就会变为绿灯 5 等轮完一圈后 设置各个方向红灯和绿灯各自亮的时间为定时器的时间即 可 算法代码 以南向北交通灯红绿灯为例 13 1 控制直行红绿灯交替变亮的定时器 2 private void timer1 Tick object sender EventArgs e 3 4 int nLight currentSIndex 1 5 if nLight 2 6 7 nLight 1 8 9 currentSIndex nLight 10 TurnGreen nLight 11 this Invalidate 重新绘制控件 12 13 14 控制直行灯的变化 15 public void TurnGreen int nLight 16 17 if nLight 1 18 19 sLight FillColor Color FromArgb 0 255 0 20 timer1 Interval iSGTime 21 22 else 23 24 sLight FillColor Color FromArgb 255 0 0 25 timer1 Interval iSRTime 26 27 28 29 控制左行红绿灯交替变亮的定时器 30 private void timer2 Tick object sender EventArgs e 31 32 int nLight currentLIndex 1 33 if nLight 2 14 34 35 nLight 1 36 37 currentLIndex nLight 38 TurnGreen2 nLight 39 this Invalidate 重新绘制控件 40 41 42 控制左行灯的变化 43 public void TurnGreen2 int nLight 44 45 if nLight 1 46 47 lLight FillColor Color FromArgb 0 255 0 48 timer2 Interval iLGTime 49 50 else 51 52 lLight FillColor Color FromArgb 255 0 0 53 timer2 Interval iLRTime 54 55 2 6 3 车辆产生位置算法 现实状况 众所周知 公路上车辆要是堵塞的话就会排队 车辆产生的位置是 不同的 软件情况 此版交通灯模拟软件 根据当时堵塞车辆数来确定产生的位置 但 是车辆长度只能设置为固定的 算法思想 根据堵塞车辆数来确定产生的位置 1 先调用算法得到方向目前堵塞车辆数 2 设置车辆长度和车间距 15 3 通过车辆数乘以车辆长度再加上所有的车间距 得到 x 或 y 坐标值 算法代码 1 currentSCarNum this snRoadCar1 CurrentSCarNum 得到直行车辆数 2 currentLCarNum this snRoadCar1 CurrentLCarNum 得到左行车辆数 3 4 yS this Height 24 23 直行堵塞车辆产生的 Y 坐标 5 yL this Height 24 17 左行堵塞车辆产生的 Y 坐标 6 width this Height 12 7 height this Height 12 8 9 画直行车辆 10 for i 1 i currentSCarNum i 11 12 g DrawRectangle Pens Black this Width width i 2 i 直 行堵塞车辆产生的 X 坐标 yS width height 13 g FillRectangle new SolidBrush this FillColor this Width width i 2 i yS width height 14 15 16 画左行车辆 17 for i 1 i 1 29 this snRoadCar1 CurrentSCarNum snSCarNum 1 30 31 snLightState this snTrafficLightCtrl1 CurrentLLightIndex 32 snLCarNum this snRoadCar1 CurrentLCarNum 33 判断左行方向交通灯是否为绿灯 34 if snLightState 1 35 36 if snLCarNum 1 37 this snRoadCar1 CurrentLCarNum snLCarNum 1 38 2 6 5 车辆流速控制算法 现实状况 众所周知 各个方向车辆产生时间时隔是不同的 是随机的 软件情况 此版交通灯模拟软件 设置各个方向车辆产生时间为随机的 但是 不能让用户设置 是固定随机范围 算法思想 17 每个方向的车辆控制都设置一个定时器 当定时器发动时 就产生一辆车辆 1 设置南北直行车辆随机时间为 5 10 秒 2 设置南北左行车辆随机时间为 10 15 秒 3 设置东西直行车辆随机时间为 3 8 秒 4 设置东西左行车辆随机时间为 8 12 秒 算法代码 以西向东方向的车辆为例 22 控制西向东直行方向车辆流速的定时器 23 private void timer1 Tick object sender EventArgs e 24 25 直行车辆产生时间为 3 8s 随机 26 Random rd new Random 27 timer1 Interval rd Next 3 8 1000 28 CurrentSCarNum 1 29 this Invalidate 重新绘制控件 30 31 32 控制西向东左行方向车辆流速的定时器 33 private void timer2 Tick object sender EventArgs e 34 35 左行车辆产生时间为 8 12s 随机 36 Random rd new Random 37 timer2 Interval rd Next 8 12 1000 38 CurrentLCarNum 1 39 this Invalidate 重新绘制控件 40 2 7 界面接口函数 界面留有很多接口以供模块的调用 接口函数如下表 2 3 界面接口函数 表 2 3 功能功能声明声明 交通灯时间控制模块中的确定按private void button1 Click object 18 钮的响应函数sender EventArgs e 菜单 作者 的响应函数 private void 作者 ToolStripMenuItem Click object sender EventArgs e 菜单 退出 的响应函数 private void 退出 ToolStripMenuItem Click object sender EventArgs e 菜单 注意事项 的响应函数 private void 注意事项 ToolStripMenuItem Click object sender EventArgs e 菜单 交通灯时间控制说明 的 响应函数 private void 交通灯时间控制说明 ToolStripMenuItem Click object sender EventArgs e 菜单 车辆随机时间说明 的响 应函数 private void 车辆随机时间说明 ToolStripMenuItem Click object sender EventArgs e 菜单 堵塞车辆统计说民 的响 应函数 private void 堵塞车辆统计说明 ToolStripMenuItem Click object sender EventArgs e 判断各个方向是否为绿灯 若为 绿灯则减少此方向排队车辆数的定时 器 private void timer1 Tick object sender EventArgs e 19 3 软件菜单界面 3 1 注意事项 此版软件因为时间和个人能力有限 因此遗留一些问题 所以有很多的主要事 项 如下图 3 1 图 3 1 3 2 交通灯时间控制说明 软件中的交通灯时间控制模块的使用说明如下图 3 2 20 图 3 2 3 3 车辆随机时间说明 车辆随机时间模块的使用说明如下图 3 3 图 3 3 3 4 车辆堵塞统计说明 车辆堵塞统计模块的使用说明如下图 3 4 21 图 3 4 3 5 主界面 软件的主界面如下图 3 5 图 3 5 22 4 软件使用例子 4 1 设置交通灯时间 1 选择交通灯时间控制模块 如图 4 1 图 4 1 2 南北直行红灯亮的时间和绿灯亮的时间可以自行设置 比如设置南 北直行红灯亮的时间为 80 秒 直行绿灯亮的时间为 36 秒 如图 4 2 图 4 2 3 等点击确定后 南北左行红绿灯 东西直行红绿灯 东西左行红绿 灯亮的时间都会根据算法自动算出 如图 4 3 23 图 4 3 4 2 查看车辆随机时间 1 选择车辆随机时间模块 如图 4 4 图 4 4 2 就会在下面看到各个方向车辆的随机时间 如图 4 5 图 4 5 4 3 查看堵塞车辆统计 1 选择车辆随机时间模块 如图 4 6 24 图 4 6 2 就会在下面看到各个方向车辆的随机时间 如图 4 7 图 4 7 4 4 查看车辆行驶 查看软件的右边就可发现车辆行驶的情况 如图 4 8 25 图 4 8 26 5 结论 5 1 实现功能 此版软件目前实现的功能 1 实现交通灯模拟以及交通灯的交替变亮暗 2 实现可以设置南北直行方向交通红绿灯持续亮的时间 然后根据算法算出 南北左行红绿灯 东西直行红绿灯 东西左行红绿灯亮的时间 3 实现各个方向的车辆产生时间随机化 南北直行车辆随机范围为 5 10 秒 南北左行车辆随机时间范围为 10 15 秒 东西直行车辆随机时间范围为 3 8 秒 东西左行车辆随机时间范围为 8 12 秒 4 实现十字路口和车辆的模拟化 5 实现车辆随着各自方向红绿灯亮的情况而增加排队车辆或减少排队车辆 6 实现查看各个方向堵塞车辆统计模块 统计某一时刻各方向堵塞车辆数 此模块为每隔一秒自动统计 7 实现各个模块的使用说明帮助菜单 说明各个方向的交通红绿灯亮时间的 算法 5 2 功能不足 因为时间和能力受限 此版软件中仍有很多不足之处 1 没有考虑黄灯作用 2 车辆等的模拟化不是很美观 3 没有实现车辆行驶的模拟 只是实现了车辆堵塞情况的模拟 4 车辆产生的随机时间不能让用户自行设置 只能是固定的随机范围 27 参考文献参考文献 1 千讯行业研究 中国交通灯行业发展研究报告 J 千讯 北京 信息咨询有限 公司 2012 北京交通工程学会 道路交通与安全 2009 年 第 2 期 2 陈德望 李灵犀 刘小明 宫晓燕 王飞跃 城市高速道路交通控制方法研究的回顾 与展望 J 信息与控制 2002 年 04 期 3 Icon Group International Traffic Light Webster s Timeline History 1868 2007 March 10 2010 4 城市建设杂志社 城市建设理论研究 2011 年 第 13 期 5 美国联邦公路局 交通控制系统手册 李海渊译 6 RiLSA 德国交通信号控制规范 7 徐吉谦 陈学武 交通工程总论 人民交通出版社 8 吴兵 李晔 交通管理与控制 人民交通出版社 28 附录附录 部分代码部分代码 附 A 南北交通灯实现代码 56 using System 57 using System Collections Generic 58 using System ComponentModel 59 using System Drawing 60 using System Data 61 using System Linq 62 using System Text 63 using System Windows Forms 64 65 namespace trafficLight 66 67 public partial class snTrafficLightCtrl UserControl 68 69 构造灯结构体 70 struct Light 71 72 int left top width height 73 public Color FillColor 74 75 public void Move int left int top int width int height 76 77 this left left 78 this width width 79 this top top 80 this height height 81 82 83 画图 84 public void Paint Graphics g 85 86 g DrawEllipse Pens Black left top width height 29 87 g FillEllipse new SolidBrush this FillColor left top width h eight 88 89 90 91 构造函数 92 public snTrafficLightCtrl 93 94 InitializeComponent 95 96 97 成员变量 98 private Light lLight sLight rLight 99 int iLGTime 20000 100 int iLRTime 106000 101 int iSGTime 40000 102 int iSRTime 86000 103 int currentSIndex 0 104 int currentLIndex 0 105 106 public int CurrentSLightIndex 107 108 get return currentSIndex 109 set currentSIndex value 110 111 112 public int CurrentLLightIndex 113 114 get return currentLIndex 115 set currentLIndex value 116 117 118 public void SetLGTime int lgTime 119 120 iLGTime lgTime 1000 121 122 123 public void SetLRTime int lrTime 124 125 iLRTime lrTime 1000 126 127 30 128 public void SetSGTime int sgTime 129 130 iSGTime sgTime 1000 131 132 133 public void SetSRTime int srTime 134 135 iSRTime srTime 1000 136 137 138 protected override void OnPaint PaintEventArgs e 139 140 base OnPaint e 141 Resize 142 this lLight Paint e Graphics 143 this sLight Paint e Graphics 144 this rLight Paint e Graphics 145 146 147 控制直行灯的变化 148 public void TurnGreen int nLight 149 150 if nLight 1 151 152 sLight FillColor Color FromArgb 0 255 0 153 timer1 Interval iSGTime 154 155 else 156 157 sLight FillColor Color FromArgb 255 0 0 158 timer1 Interval iSRTime 159 160 161 162 控制左行灯的变化 163 public void TurnGreen2 int nLight 164 165 if nLight 1 166 167 lLight FillColor Color FromArgb 0 255 0 168 timer2 Interval iLGTime 169 31 170 else 171 172 lLight FillColor Color FromArgb 255 0 0 173 timer2 Interval iLRTime 174 175 176 177 private void Resize 178 179 int w h d 180 w this Width 181 h this Height 182 d w 4 183 184 if d h 185 d h 186 lLight Move d 4 h d 2 d d 187 sLight Move d d 2 h d 2 d d 188 rLight Move 2 d 3 d 4 h d 2 d d 189 190 191 开启定时器 192 private void trafficLightCtrl Load object sender EventArgs e 193 194 lLight FillColor Color FromArgb 255 0 0 195 sLight FillColor Color FromArgb 255 0 0 196 rLight FillColor Color FromArgb 0 255 0 197 198 timer1 Interval 1 199 timer2 Interval 40000 200 currentSIndex 0 201 currentLIndex 0 202 timer1 Start 203 timer2 Start 204 205 206 定时器 207 private void timer1 Tick object sender EventArgs e 208 209 int nLight currentSIndex 1 210 if nLight 2 211 32 212 nLight 1 213 214 currentSIndex nLight 215 TurnGreen nLight 216 this Invalidate 重新绘制控件 217 218 219 private void timer2 Tick object sender EventArgs e 220 221 int nLight currentLIndex 1 222 if nLight 2 223 224 nLight 1 225 226 currentLIndex nLight 227 TurnGreen2 nLight 228 this Invalidate 重新绘制控件 229 230 231 附 B 西东车辆和路况实现代码 41 using System 42 using System Collections Generic 43 using System ComponentModel 44 using System Drawing 45 using System Data 46 using System Linq 47 using System Text 48 using System Windows Forms 49 50 namespace trafficLight 51 52 public partial class weRoa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全培训效果评估措施课件
- 2025广东深圳市宝安区陶园中英文实验学校招聘初中英语教师2人考前自测高频考点模拟试题及答案详解(易错题)
- 跨境电商协议的关键条款
- 2025年滁州明光市公开引进高中教育紧缺人才11人模拟试卷及答案详解参考
- 企业内部培训资源与平台建设
- 以淡淡的书香为话题的初中作文7篇
- 2025湖北武汉大学中南医院咸宁医院咸宁市第一人民医院招聘15人考前自测高频考点模拟试题及答案详解(典优)
- 2025福建省水利投资开发集团有限公司招聘1人考前自测高频考点模拟试题及答案详解(典优)
- 2025年4月广东深圳博物馆劳务派遣工作人员招聘1人模拟试卷及1套完整答案详解
- 技术方案撰写与评审标准
- 危重新生儿救治知识竞赛试题及答案
- 2025年新人教版语文三年级上册全册教学课件
- 《数字图像处理基础》课件
- 2025年全国质量月主题宣讲课件
- 无取向硅钢热轧板翘皮缺陷成因及控制措施研究
- 煤矿机电安全事故培训课件
- 施工升降机安全技术培训材料
- 安全培训反三违课件
- (9月3日)铭记历史珍爱和平-纪念中国人民抗日战争暨世界反法西斯战争胜利80周年爱国主义主题教育班会课件
- 私域流量运营策略及五大关键原则
- 2026高中语文选择性必修上册 - -第二单元综合测试卷
评论
0/150
提交评论