ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:403.11KB ,
资源ID:11739841      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11739841.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(毕业设计175十字路口车流模拟系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

毕业设计175十字路口车流模拟系统.docx

1、毕业设计175十字路口车流模拟系统上海交通大学计算机科学与工程系学士论文十字路口车流模拟系统系 别计算机科学与工程系学科专业计算机科学与技术研究方向图形图像姓 名孙哲导 师何援军上海交通大学计算机科学与工程系2004年6月摘要 十字路口模拟涉及到图形图像处理与最优控制算法,是一项有着较强应用前景的技术。一方面可以模拟多个十字路口的交通网,研究总体最佳控制算法;另一方面可以在游戏及虚拟现实中有所应用,如模拟城市就使用到了十字路口模拟的技术。 本项目是实现十字路口模拟的一些基本的功能,只模拟了一个十字路口,单车道,且不涉及智能最优控制算法,而只是一个比较简单的控制算法。专注于图形图像方面的实现,如

2、何使整个模拟系统尽可能的显得真实。可以在基于本项目的基础上发展和完善智能最优控制算法,以及交通网,使之达到实际应用的水平。关键词:图像合成,移动,红绿灯控制,探测,转弯。AbstractThe simulation of crossroads refers to image process and best control algorithm and is a technology which has good potentiality in application. It can simulate a traffic net that contains many crossroads to

3、research the best control algorithm. It also can be used in games such as SimCity.This project simulates some basic functions of a crossroads, only one crossroads, one lane and dont refer to best control algorithm but a simple algorithm. It is mainly about the realization of image: how to make whole

4、 system as really as it can. Someone can develop best control algorithm and traffic net basis on the project in order to make can be use in application.Keywords: Integrate images, move, control of light, probe, turn.Catalog一 概述二 功能及实现三 测试四 小结五 参考书目第一部分 概述 项目名称十字路口车流模拟系统 功能概述模拟十字路口车流情况,并用一个红绿灯实现对车流的控

5、制。 汽车在四边的道路末端随机出现,沿着既定方向移动。在十字路口处如果是红灯,车流会停止等待灯变绿,然后再做出选择;若是绿灯会随机做出3种选择:小转弯、大转弯或直行。一辆轿车若检测到前方有车会自动停下来以免撞车。车行到路的末端会自动消失。如此往复形成一个循环,完成对十字路口车流的模拟。 可控参数车速;进入流量(进入车流随机范围),(四个方向); End_7()(696,100)D Position4(660,100)总图(PIC1)End_5()(960,564)End_3()(370,600)End_2()(160,302)A Position1(160,330)C Position2(96

6、0,538)B Position3(400,610)第二部分 功能及实现 背景图像背景图像是从模拟城市IV中截得的,十分逼真和美观。汽车的图像与背景图像的合成,即能完成运动的十字路口模拟。 图像合成 上图是轿车的图像,尺寸是48*31。 若直接和背景图像合成,会出现如下情况:此时就需要消去轿车图片中白色的背景转而换成背景图片中的像素。即所谓的精灵图像合成。一般用GDI的BitBlt函数方法实现之,叫做光栅操作。 光栅操作一来烦琐,二来效率不是很高,所以在设计中没有采用。设计中采用的是对内存DC直接操作的方式来合成图像的。创建两个内存DC,一个放入背景图像,一个放入小车图像。对小车图像进行逐点循

7、环,若小车图像的当前像素点是白色,则背景图像的对应像素点颜色不变,否则颜色设成小车图像当前点的颜色。如此便实现了小车图像和背景图像的无缝合成。具体算法如下:准备工作创建BITMAP 对象并装入位图资源获得显示DC的指针CDC* pDC=GetDC();创建与显示DC兼容的内存DC:m_pbackMemDCm_pbackMemDC-CreateCompatibleDC(pDC);创建与显示DC兼容的内存DC:m_pcarMemDC_1m_pcarMemDCi-CreateCompatibleDC(pDC);backBitmap-m_pbackMemDCm_pbackMemDC-SelectObj

8、ect(&backBitmap);carBitmap-m_pcarMemDC_1m_pcarMemDCi-SelectObject(&carBitmapH);合并算法 对m_pcarMemDCi进行双重循环,遍历每一像素点Integrate_H(double x,double y) for(int i=0;i48;i+) for(int j=0;jGetPixel(i,j); 若颜色不是白色 if(currentColor!=RGB(255,255,255)m_pbackMemDC中对应点设为car的颜色(意味着若是白色,则m_pbackMemDC中相应点颜色不变,达到了将白色底色过滤的目的)

9、 m_pbackMemDC-SetPixel(x+i,y+j,currentColor); 获得显示DC的指针 CDC* pDC=GetDC(); 红绿灯颜色控制 LightControl(); 显示m_pbackMemDC(已被修改过,合成后的图像) pDC-BitBlt(0,0,m_nMaxX,m_nMaxY,m_pbackMemDC,0,0,SRCCOPY); 释放显示DC ReleaseDC(pDC);采用了此算法的合成后图像如下图所示:上述的小车图像是东西向的,南北向马路则要加载如下的小车图像:尺寸是34*36。合并算法基本是一样的,只是小车图像的逐点循环稍微改变一下,因为尺寸有所变

10、化:for(int i=0;i34;i+) for(int j=0;j100&Light960) Position_xi=160; Position_yi=330; Choicei=0; 如此便实现了小车的循环。 小车的转弯小车在十字路口会有2种转弯方式:小转弯和大转弯。四个出口共计8种转弯方式,分别对应8个转弯函数。但算法的本质都是相同的,即调用一系列图像,完毕后再调用进入路段对应的run函数。 转弯函数很简单,和移动时的run函数原理一样,都是调用一系列的图像合成函数使小车在屏幕上显示出动画的转弯效果。 转弯时重要的一点是防止撞车,这在下面探测中会详细叙述。 探测人在开车时都会注意四面八方

11、以免造成事故,此模拟系统也是。若不对小车加以限制,难免会造成撞车的情况,所以需要给每辆小车装备一个探测装置。探测装置的功能很简单,就是探测前方一定距离内是否有车辆,如果有的话,就停下来,等到前方车辆行驶了再启动。探测装置在两个地方有用,一是等红灯时,后面的汽车应当停在前面汽车的后面而不是撞上去;还有在十字路口中间更是需要,否则会一团乱麻。探测装置原理很简单。因为Position_xi和Position_yi设定了小车的位置,所以只要比较当前小车的位置和其他小车的位置便可得出结论。因为共有4个方向,所以有四个探测函数,当然算法本质都是一样的。算法简要描述:当前小车Position_xi和Posi

12、tion_yi上图是以西-东马路为例。如上图,我们知道当前小车Position_xi和Position_yi和马路的斜率,便可以虚拟出图中虚线矩形。很容易理解,在进行Position_x和Position_y循环的时候,如果有某一对Position_x和Position_y在虚线矩形范围内,说明前面有车。虚线矩形的范围很容易确定。小车bitmap的尺寸是48*31,则虚线矩形的顶点坐标为:A(Position_xi+48,Position_yi+15);B(Position_xi+96,Position_yi+15);C(Position_xi+96,Position_yi+46);D(Pos

13、ition_xi+48,Position_yi+46)。十字路口处的探测要复杂些,我们把十字路口分成4大块,如下图。因为小转弯总要经过A、B、C、D中的一个,而大转弯要经过其中的两个。总体原则就是小转弯要检测器要经过的方形中是否有车辆,而大转弯则要检测两次。小车若从1号路段转到3号路段,便要检测方形区域C中是否有车辆;而小车若从1号路段转到7号路段,则需先检测C中是否有车辆,若没有进入C,然后再检测B中是否有车辆,若没有则进入B,然后就进入了7号路段。值得注意的是,在有很多小车等着过十字路口的时候,我们必须解决一个优先级的问题。优先级的设定是这样的:小转弯直行大转弯。例如2辆小车,小车a要从1

14、号路段转到7号路段,小车b要从6号路段转到7号路段。因为小转弯的优先级大于大转弯,所以a先进入C,但不能进入B,要等b车从区域B中驶出进入路段7后才能进入区域B,随后也进入路段7。利用上述的优先级便可以实现十字路口的防止撞车控制。因为小车在转弯的时候不使用Position_xi和Position_yi来表示位置,所以设置全局变量bool beA,beB,beC,beD;若是某个区域内有车,则相应的变量设为false,没有车时为true。例如A区域内有车,beA的值设为false。这样可以通过这四个变量实现探测,控制转弯。 多辆小车当我们实现了一辆小车后,实现多辆小车就是很简单的事情了。 run

15、函数的最终版本上文所述的run函数只是实现了最简单的移动功能,一个完整的run函数还应当整合探测功能与路口处等待或是选择功能。完整的run函数算法如下,以run_1为例:run_1(int i) /探测前方是否有车 int beCar=Probe_15(Position_xi,Position_yi); /如果有车,停止行驶if(beCar=0) Position_xi+=0; Position_yi+=0; /如果车在路口且是红灯,停止行驶 if(redH=1&Position_xi=420&Position_xi425) Position_xi+=0; Position_yi+=0; /没

16、到路口,正常行驶 else if(Position_xi=420&Position_xi直行大转弯,井然有序,不会发生撞车。通过十字路口后每辆小车继续后半段的旅程,直到道路末端,消失,然后重新开始。调整快播倍率,可以看到整个系统像快镜头或慢镜头似的在运行;调整车速,发现小车行驶速度加快或减慢。一切符合要求。第四部分 小结总的来说,程序运行的结果基本达到了预先的设想,一些基本的功能都有所实现。通过此次项目的开发,使我掌握了一些图像方面的基本技术。不足的是红绿灯控制算法还没有智能化,不过只要对程序加以改进,就可以实现更加复杂的算法,或是模拟多个十字路口的交通网。虽然我只是掌握了一些皮毛,但是我相信

17、模拟技术是一门很有前途的技术,我希望今后能有机会在这方面深入研究。第五部分 参考资料1 R. Agrawal, T. Imielinski, and A. Swami. Mining association rules between sets of items in large databases. In Proc.of the ACM SIGMOD Conference on Management of Data,pages 207216, 1993.2 R. Agrawal, H. Mannila, R. Srikant, H. Toivonen, and A. I.Verkamo. Fast discovery of association rules. In Advancesin Knowledge Discovery and Data Mining, pages 307328,1996.3 R. Agrawal and R. Srikant. Fast algorithms for mining a

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1