如何自己编写一个交通仿真软件 (开篇) 走火入魔。

 

关注交通仿真公众号,获取更多精彩文章

未来的汽车是怎么跑起来的。

从滴滴交通大脑看交通仿真软件的创新变革。

还有更多资讯,请扫码关注。

 

 

如何自己编写一个交通仿真软件 (一)火种

如何自己编写一个交通仿真软件(二)原野

 

注意以下为老版本软件和代码。

    软件下载地址(百度网盘)(可运行的软件位于debug目录下)

    CSDN源代码下载(需有csdn账号)该文章也同时在CSDN 发布, 有图有真相,也有exe(就是没有女票)。

 

以下为新版本软件和代码

任何安装了git客户端的人都可以用git pull最新完整版代码

GIT项目地址:http://git.oschina.net/sapperjiang/TrafficSim

git地址:https://git.oschina.net/sapperjiang/TrafficSim.git


 

 

一、这个软件是干嘛的?

-----------本仿真软件的定位----------------

1、为了给交通领域的研究人员提供一个好的学习和实验平台,能产生一定的学术价值。
对那些有能力有精力有志向探索交通仿真的人,希望是一个帮助,毕竟这些路径我探索过。扫除有一定基础的专业人士,对自己开发仿真软件的初步障碍、提供一个曾经实践过的思路和想法。

2、不打算商业化,还差点远。商业化的好处在于--持续的商业利益驱动软件更新完善并能得到用户需求的不断推动;局限在于对于研究、探索和培养人才来说,了解内部运行机理成为不可能。

3、降低实践的门槛、发挥学术价值。
      毕竟已经有了一个基础的平台。可以通过几个月的时间,在这个平台上完善或者实践自己的模型。平台允许自己建立一个模型、然后用软件跑出来看看仿真动画、分析分析仿真数据,解决模型的局限。

4、解决软件的局限。学术研究人员能够根据自己的需求,对软件进行改进,加深自己对交通仿真的认识。

 

二、还有其他类似开源交通仿真软件么?

 

答案是YES,我们的德国交通同行,正在开发和改进一款叫做sumo的开源软件。

下面是它的主页:http://sumo.sourceforge.net/

它最近的活动链接:http://www.dlr.de/ts/en/desktopdefault.aspx/tabid-10848/18984_read-44970/

 

二、非专业人士如何选择合理的开发工具和开发语言。

 

软件发布后,有人给我交流。也是想开发软件的“奋青”(发奋的有志青年)。

对很多程序开发初学者来说。学习哪门语言,是个很纠结的问题,这是个开创成功事业能否成功的问题。在此我做一下解答,结合我自身经历:

     声明本人非计算机科班出身(正宗交通工程+交通信息工程专业毕业)。

    由于我大一第一学期(没办法,家里没有鱼塘,启蒙太晚,成就不了13岁编程神童的传说)就学会了C并有了处女作“hello world!!”, 再学习C plus plus ,就是自然而然了,就想用惯了苹果6 ,入手 苹果6 plus plus 顺理成章。

(我这种笨人,当初敲入turbo c 2.0 并且将处女作编译成功花了一节上机课的时间(不得不吐槽,当年遇到困难的时候,也不如张良这伙计运气好,提提鞋子,就能获赠兵法,日后指点江山。当初求助的计算机学院的老表在用电脑打纸牌游戏,极不耐烦(失去了多年后被我表扬的机会),很不屑我这种小菜鸟的这种小问题)。

 

     但是,C++复杂难懂,超出了预计的成本。且长久的钻研却看不到回报的事业注定是一件很没有动力持续的事业。。。。。当初我真怀疑:对非专业人士来说,学懂C++是否要卖个肾~~。

 

废话太多,这里不伦你是vb 还是java 还是C++或者python.开发仿真软件,建议非专业人士用.net平台。理由如下:

1、c++这样的语言,设计过于专业严谨,学习成本高((不要急着反驳我这个业余人士,不许反驳,因为我业余(嘻嘻)))。

2、非.net 平台下的c++ 数据结构相当不友好。(不要急着反驳,还是因为我业余(嘻嘻))。对于自幼(哈哈,包装一下,凸显天粪)学习c的人来说,相当不容易搞懂指针。然而,仿真软件建模当中,各种交通元素的模型,不涉及链表、图、矩阵、队列、栈这些鬼东西(神器)的编程尝试,必然会被计算机这个傻瓜兄弟嘲弄而头破血流。在C++中,这些数据结构都涉及指针,维护和读懂他们就是个灾难(我业余我骄傲~~)(什么你就喜欢指针?你就喜欢指针的指针?留下大名,给你上柱香)。

3、c++原生的函数库支持,简直是弱爆了。有了.net 还好。当初为了脱离.net 平台,写了算法,自己实现了好多别的语言都有的函数和数据结构,想想都要哭,难道每次我都要重新发明轮子?vc6.0  给我的印象两个:1、经典;2、绝望;3、我的各妈,真绝望;4、我不识数。

4、会牵扯你更多的精力在bug调试、内存泄露(非.net 平台下的c++)而不是专注于自己的目标---编写交通仿真软件,早日看到运行成果。尤其是bug定位不准确所造成的不知所云and 巴拉巴拉。。。。。

5、要自己写代码呈现仿真效果,windows下开发(什么,你Linux?好,没关系,建议用mono框架,可以跨平台),离不开GDI+编程。而这个GDI+还是比GDI容易理解和伺候的。

 

最后:我强调一下:我不是诋毁c++的愤青,我是在帮非专业人士,节约你的生命和增加表白(哦,不,交通仿真软件事业)成功的可能,一定要记住你的目标:编写成仿真软件,早日尝到甜头,而不是学习编程本身。(变态大的字体,警示啊。)

 

三、专业人士如何加入该项目

(一)加入团队(不加入也行,自己研究用~~)

  专业人士可以给我发email参与代码开发协作。1286008361@qq.com。加qq也可以:1286008361.到时候 我把你加入开发者中,就可以push(svn叫commit)代码了。

(二)下载版本控制软件:

首先你要准备两个软件,分别是msysgit(这个才是git,先安装)tortoisegit(git的图形操作界面,后安装)。。直接下载(两个软件都有)

只下载totoisegit 这个软件根本没用,我搞了好长时间才明白。 (草泥马,程序员做的东西果然不是一般人的思维,直接内置git.exe得了。)

(三)下载仿真软件源代码:

 

项目的平台搭建好了,代码托管在OSChina上面想参与的童靴请注册一个oschina账号发我email,加入开发者团队之后就可以push代码。

暂时不想加入的话,任何一个git客户端都可以往自己的电脑pull项目最新的代码下来。

为什么不是sourceforge?github?天朝是有 长城防火墙的 万一墙掉了,就回到解放前了

然后就是从OSCHINA git地址 pull代码。

项目地址:http://git.oschina.net/sapperjiang/TrafficSim

git地址:https://git.oschina.net/sapperjiang/TrafficSim.git

 

(四)遇到问题怎么办

   1、现在这个项目的文档不完善。如果项目没有帮助更多的人,或者别人不想用、或者不想参与,文档也没意义。写文档是个费力气的活儿,等需要的人出现,我就写。否则,写了白写,还不如约女票波一个。

   2、软件的原理和代码不懂的。单步运行几下,看看函数的调用堆栈就明白了。如果不想浪费时间,就qq问我吧,不过不保证服务质量~~。

 

转载于:https://my.oschina.net/u/214547/blog/359601

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值