雷达界面的制作,新手求教,送上100分,在线等!!!

weiq119 2014-06-21 09:48:05
小弟刚刚上班,公司给我分配的任务用MFC是做一个雷达的界面,并处理相关的数据。我虽然有C++的基础,但是以前从未接触过MFC,用的是Eclipse,敲的都是控制台程序。公司对界面的要求是,在对话框上面画一个扇形表示雷达扫过的面积(背景弄成黑色),右边有一些按钮实现相关的控制。请问这个扇形该怎么画呢?我刚开始使用一个picture control控件显示一张图片,但自己也感觉不对,那么怎么直接在对话框上面画图呢?!还有公司要求要另用一个对话框以一个坐标轴的方式把汽车的速度显示出来,比如横轴是距离,纵轴是时间,那么就将速度以一条不断变幻的曲线显示出来,就有点像示波器那种。不求给位把代码给位,只是想大家给位一个大的方向和一下方法,不胜感激!!我这儿还有一个公司给的EXE格式的成品,可惜不能上传附件,诚心帮助我的可以找我要。
...全文
813 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
haiqinzuo 2014-12-02
  • 打赏
  • 举报
回复
引用 12 楼 dijkstar 的回复:
哈哈,我就是搞雷达终端显控的,不过好几年不搞了,看了楼上的作品,感到真亲切! 不知道楼主所在的公司是否做真正的雷达,还是让你弄个界面玩玩。如果弄个界面玩玩,那么gz_qmc提供的演示足够了,他实现的是PPI显示,而且还带“余辉”,真牛,看来是一位显控专家啊! 如果你想要扇扫的界面,按他的思路——极坐标转成直角坐标,自己用CDC的MoveTo、LineTO直接在界面上画就行了 最好弄一个双缓冲,不然直接向屏幕上画,大量操作的话会闪烁的 楼主你真幸福啊,这么快有人给你这么好的一个demo,而且网上这么多资料可查。想起自己搞这个东西时,最早还是在dos下做呢,你可知道dos是实模式的有640K内存限制,想开个1M的数组都不能,一副基本的界面640×480有多少呢?没办法用了djgpp进了保护模式,选择了一个开源的allegro显示库,解决了这个问题,那时都是自己摸索的,走了很多弯路。 后来进入了win平台下,还好allegro库支持多个平台,很轻松的移植到了win、linux平台下 如果仅做雷达界面,不考虑做整个雷达系统,楼上demo足够了,如果你要做雷达显控系统,还有很多因素要考虑,首先考虑的是运行效率,毕竟这个东西是实时显示程序,弄不好还要上实时操作系统,如wince、vxworks,这个要看搞总体的人给你的显控指标了;还有,完整的雷达显控终端,还有很多其他功能,比如电子地图、偏心(远程/近程切换)、数据接收、数据处理、发送,可能会涉及到硬件驱动、通信,要求你的显控程序运行效率要非常高,这一点建议你在win平台下,就选择vc+mfc吧,mfc的效率和稳定性都是经过二十年的验证,值得信任 具体技术,你可以参考楼上的几位提出的,显示这一块就在OnPaint自己处理就行了,gdi、gdi+都行,尽量底层些,好保证运行效率;双缓冲可以避免闪烁,你自己在网上搜一下这个关键词,有很多示例,但要你自己来控制刷屏的周期;还有就是这种程序要开好几个线程的,把握好线程间的通信,如利用WaitForSingleObject、CEvent可以实现事件通知,Sleep延时;可以多用MFC下的集合类,如动态数组CArray,这样能减轻你大量工作,虽然是动态数据结构,但这些类的稳定性非常好,你不必考虑内存碎片之类的;调试下,多用TRACE宏,免去了printf语句,而且在多线程下TRACE宏最好的调试方法; 个人认为VC下,什么东西都归你控制,你可以随心所欲的干你想干的事,而且出了问题,能找到很多帮助,有很多人已经遇到类似的问题了! 萝莉利索的说了这么多,真心希望你帮上你什么忙,有什么疑问可以给我留言吧
目测这位大神就是雷达终端方面的专家哇,您的这番话让我个菜菜鸟对终端又有一个认识。
haiqinzuo 2014-12-02
  • 打赏
  • 举报
回复
引用 22 楼 allenhiman 的回复:
[quote=引用 20 楼 gz_qmc 的回复:] [quote=引用 19 楼 schlafenhamster 的回复:] 真正的雷达系统 "回波是在扫描线上的" 也就是 这根扫描线的亮度是 受回波信号调制的.
今天,有120多人下了该例 我想 需要这个例子的人99.99%只是要一个游戏里动画的视觉效果 以此来学习基础的动画效果的实现方法 并不追求专业的解释 当然,如果追求专业的,怕是要弄点人民币才能搞清楚哦 [/quote] 你这小子 就是嘴不好 经常骂人 不过 热心起来 还真是挺给力的 [/quote] 你好,请问你这个电子地图是怎么画上去的啊?麻烦给点思路。是用地图控件显示呢,还是自己读文件画的呢?
weiq119 2014-07-01
  • 打赏
  • 举报
回复
引用 31 楼 gz_qmc 的回复:
[quote=引用 27 楼 aaa763602742 的回复:] 竟然说我是小渣渣~~不过我不生气,还是谢谢你的回答,你的例子我也会好好的研究。其实我是C高手,原本是搞嵌入式的,微软的东西总感觉太那个了,封装的东西太多了,搞得人头晕!
其实,你可以亲切的称呼我为大渣渣,那样我会挺荣幸的![/quote]呵呵,你还是挺厉害的。其实我骗你的,我可不算C高手,最多就是很熟悉而已。
gz_qmc 2014-07-01
  • 打赏
  • 举报
回复
引用 27 楼 aaa763602742 的回复:
竟然说我是小渣渣~~不过我不生气,还是谢谢你的回答,你的例子我也会好好的研究。其实我是C高手,原本是搞嵌入式的,微软的东西总感觉太那个了,封装的东西太多了,搞得人头晕!
其实,你可以亲切的称呼我为大渣渣,那样我会挺荣幸的!
Eleven 2014-07-01
  • 打赏
  • 举报
回复
整个好一点的背景图~
weiq119 2014-07-01
  • 打赏
  • 举报
回复
引用 12 楼 dijkstar 的回复:
哈哈,我就是搞雷达终端显控的,不过好几年不搞了,看了楼上的作品,感到真亲切! 不知道楼主所在的公司是否做真正的雷达,还是让你弄个界面玩玩。如果弄个界面玩玩,那么gz_qmc提供的演示足够了,他实现的是PPI显示,而且还带“余辉”,真牛,看来是一位显控专家啊! 如果你想要扇扫的界面,按他的思路——极坐标转成直角坐标,自己用CDC的MoveTo、LineTO直接在界面上画就行了 最好弄一个双缓冲,不然直接向屏幕上画,大量操作的话会闪烁的 楼主你真幸福啊,这么快有人给你这么好的一个demo,而且网上这么多资料可查。想起自己搞这个东西时,最早还是在dos下做呢,你可知道dos是实模式的有640K内存限制,想开个1M的数组都不能,一副基本的界面640×480有多少呢?没办法用了djgpp进了保护模式,选择了一个开源的allegro显示库,解决了这个问题,那时都是自己摸索的,走了很多弯路。 后来进入了win平台下,还好allegro库支持多个平台,很轻松的移植到了win、linux平台下 如果仅做雷达界面,不考虑做整个雷达系统,楼上demo足够了,如果你要做雷达显控系统,还有很多因素要考虑,首先考虑的是运行效率,毕竟这个东西是实时显示程序,弄不好还要上实时操作系统,如wince、vxworks,这个要看搞总体的人给你的显控指标了;还有,完整的雷达显控终端,还有很多其他功能,比如电子地图、偏心(远程/近程切换)、数据接收、数据处理、发送,可能会涉及到硬件驱动、通信,要求你的显控程序运行效率要非常高,这一点建议你在win平台下,就选择vc+mfc吧,mfc的效率和稳定性都是经过二十年的验证,值得信任 具体技术,你可以参考楼上的几位提出的,显示这一块就在OnPaint自己处理就行了,gdi、gdi+都行,尽量底层些,好保证运行效率;双缓冲可以避免闪烁,你自己在网上搜一下这个关键词,有很多示例,但要你自己来控制刷屏的周期;还有就是这种程序要开好几个线程的,把握好线程间的通信,如利用WaitForSingleObject、CEvent可以实现事件通知,Sleep延时;可以多用MFC下的集合类,如动态数组CArray,这样能减轻你大量工作,虽然是动态数据结构,但这些类的稳定性非常好,你不必考虑内存碎片之类的;调试下,多用TRACE宏,免去了printf语句,而且在多线程下TRACE宏最好的调试方法; 个人认为VC下,什么东西都归你控制,你可以随心所欲的干你想干的事,而且出了问题,能找到很多帮助,有很多人已经遇到类似的问题了! 萝莉利索的说了这么多,真心希望你帮上你什么忙,有什么疑问可以给我留言吧
那真是太好了!!我们公司是做车载防撞雷达的,我的任务就是做雷达界面,接收并处理数据。用MFC做,但我从未接触过MFC,零基础六天搞定了界面,虽然有点丑。。。以后我会常常请教你,希望你能帮我。
weiq119 2014-07-01
  • 打赏
  • 举报
回复
引用 2 楼 worldy 的回复:
楼主的并不难,到我博客里的几篇关于mfc绘图的文章弄懂,应该就会做了 http://blog.csdn.net/worldy/article/details/12868245
非常感谢你,我看了你的博客,一天就搞定了,以后要是碰到问题还会请教你,你可要不吝赐教额!
weiq119 2014-07-01
  • 打赏
  • 举报
回复
竟然说我是小渣渣~~不过我不生气,还是谢谢你的回答,你的例子我也会好好的研究。其实我是C高手,原本是搞嵌入式的,微软的东西总感觉太那个了,封装的东西太多了,搞得人头晕!
引用 5 楼 gz_qmc 的回复:
有时候抽空给你们这些小渣渣写点样例也挺幸福的 这是源代码 http://download.csdn.net/download/gz_qmc/7541693 这是效果图,看动态效果还是下源代码吧
引用 5 楼 gz_qmc 的回复:
有时候抽空给你们这些小渣渣写点样例也挺幸福的 这是源代码 http://download.csdn.net/download/gz_qmc/7541693 这是效果图,看动态效果还是下源代码吧
kuankuan_qiao 2014-06-30
  • 打赏
  • 举报
回复
引用 12 楼 dijkstar 的回复:
哈哈,我就是搞雷达终端显控的,不过好几年不搞了,看了楼上的作品,感到真亲切! 不知道楼主所在的公司是否做真正的雷达,还是让你弄个界面玩玩。如果弄个界面玩玩,那么gz_qmc提供的演示足够了,他实现的是PPI显示,而且还带“余辉”,真牛,看来是一位显控专家啊! 如果你想要扇扫的界面,按他的思路——极坐标转成直角坐标,自己用CDC的MoveTo、LineTO直接在界面上画就行了 最好弄一个双缓冲,不然直接向屏幕上画,大量操作的话会闪烁的 楼主你真幸福啊,这么快有人给你这么好的一个demo,而且网上这么多资料可查。想起自己搞这个东西时,最早还是在dos下做呢,你可知道dos是实模式的有640K内存限制,想开个1M的数组都不能,一副基本的界面640×480有多少呢?没办法用了djgpp进了保护模式,选择了一个开源的allegro显示库,解决了这个问题,那时都是自己摸索的,走了很多弯路。 后来进入了win平台下,还好allegro库支持多个平台,很轻松的移植到了win、linux平台下 如果仅做雷达界面,不考虑做整个雷达系统,楼上demo足够了,如果你要做雷达显控系统,还有很多因素要考虑,首先考虑的是运行效率,毕竟这个东西是实时显示程序,弄不好还要上实时操作系统,如wince、vxworks,这个要看搞总体的人给你的显控指标了;还有,完整的雷达显控终端,还有很多其他功能,比如电子地图、偏心(远程/近程切换)、数据接收、数据处理、发送,可能会涉及到硬件驱动、通信,要求你的显控程序运行效率要非常高,这一点建议你在win平台下,就选择vc+mfc吧,mfc的效率和稳定性都是经过二十年的验证,值得信任 具体技术,你可以参考楼上的几位提出的,显示这一块就在OnPaint自己处理就行了,gdi、gdi+都行,尽量底层些,好保证运行效率;双缓冲可以避免闪烁,你自己在网上搜一下这个关键词,有很多示例,但要你自己来控制刷屏的周期;还有就是这种程序要开好几个线程的,把握好线程间的通信,如利用WaitForSingleObject、CEvent可以实现事件通知,Sleep延时;可以多用MFC下的集合类,如动态数组CArray,这样能减轻你大量工作,虽然是动态数据结构,但这些类的稳定性非常好,你不必考虑内存碎片之类的;调试下,多用TRACE宏,免去了printf语句,而且在多线程下TRACE宏最好的调试方法; 个人认为VC下,什么东西都归你控制,你可以随心所欲的干你想干的事,而且出了问题,能找到很多帮助,有很多人已经遇到类似的问题了! 萝莉利索的说了这么多,真心希望你帮上你什么忙,有什么疑问可以给我留言吧
雷达专家
洗洗睡去 2014-06-30
  • 打赏
  • 举报
回复
NB mark下学习
gz_qmc 2014-06-30
  • 打赏
  • 举报
回复
引用 22 楼 allenhiman 的回复:
你这小子 就是嘴不好 经常骂人 不过 热心起来 还真是挺给力的
很多言论体现出来的心思 我都有过 骂人其实是骂我自己 准确说骂过去的自己 以前的我 虚伪,虚荣,虚浮,愚昧,愚腐,愚蠢 或兼有,或交织 误人便是误己,我已坑了自己半生 我一看到我的影子 莫名其妙就来气 恨不得杀之而后快
lx624909677 2014-06-30
  • 打赏
  • 举报
回复
你可以先学习下GDI绘图!!
gz_qmc 2014-06-30
  • 打赏
  • 举报
回复
引用 23 楼 allenhiman 的回复:
我也提个建议吧 也不要完全忽视美工的存在 老是觉得代码绘图有多么高大 其实你让美工做12-24张图形 不断切换 也是很好的选择的 这样的话 可以做成很强大的效果的 话说我们公司扫毒的那个雷达动画 一开始就用计算机绘图 总感觉不够cool 后来美工做了24张图 然后我傻傻的一张一张的轮换着贴 结果是 大家都很满意 啧啧叫好。。。。:>
是的,就是贴图 我比你懒点 我一般就是找别人做好的GIF 用UleadGIF转存到PDS 然后用PHOTOSHOP把所有图片铺成长长一张 根据情况隔几张抽一张 存个JPG文件 程序初始化的时候,把JPG装到CImage里 然后按索引轮番画
allenhiman 2014-06-30
  • 打赏
  • 举报
回复
我也提个建议吧 也不要完全忽视美工的存在 老是觉得代码绘图有多么高大 其实你让美工做12-24张图形 不断切换 也是很好的选择的 这样的话 可以做成很强大的效果的 话说我们公司扫毒的那个雷达动画 一开始就用计算机绘图 总感觉不够cool 后来美工做了24张图 然后我傻傻的一张一张的轮换着贴 结果是 大家都很满意 啧啧叫好。。。。:>
allenhiman 2014-06-30
  • 打赏
  • 举报
回复
引用 20 楼 gz_qmc 的回复:
[quote=引用 19 楼 schlafenhamster 的回复:] 真正的雷达系统 "回波是在扫描线上的" 也就是 这根扫描线的亮度是 受回波信号调制的.
今天,有120多人下了该例 我想 需要这个例子的人99.99%只是要一个游戏里动画的视觉效果 以此来学习基础的动画效果的实现方法 并不追求专业的解释 当然,如果追求专业的,怕是要弄点人民币才能搞清楚哦 [/quote] 你这小子 就是嘴不好 经常骂人 不过 热心起来 还真是挺给力的
schlafenhamster 2014-06-30
  • 打赏
  • 举报
回复
只是想说明 "儿戏" 只是儿戏
gz_qmc 2014-06-30
  • 打赏
  • 举报
回复
引用 19 楼 schlafenhamster 的回复:
真正的雷达系统 "回波是在扫描线上的"
也就是 这根扫描线的亮度是 受回波信号调制的.


今天,有120多人下了该例
我想
需要这个例子的人99.99%只是要一个游戏里动画的视觉效果
以此来学习基础的动画效果的实现方法
并不追求专业的解释

当然,如果追求专业的,怕是要弄点人民币才能搞清楚哦

schlafenhamster 2014-06-30
  • 打赏
  • 举报
回复
真正的雷达系统 "回波是在扫描线上的" 也就是 这根扫描线的亮度是 受回波信号调制的.
caewow 2014-06-30
  • 打赏
  • 举报
回复
gz_qmc 2014-06-30
  • 打赏
  • 举报
回复
要让球快一点 修该OnTime里的psx++ psx+=5;就很快了
加载更多回复(13)

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧