2 bullzerone bullzerone 于 2016.01.23 17:47 提问

在vs2010中实现雷达信号轨迹追踪

雷达上显示一些不同的目标,目标新的位置是红色显示的(这个本来就实现了)现在想把以前的位置想要保持住,然后
把历史位置更改为其他颜色显示,最后能看出目标的移动轨迹,信号从网口发过来,然后
在TEECHART控件中每隔100ms绘制一次目标的新位置,这个有什么思路。绘制函数在定时器中实现的,
接收数据是一个单独函数。

5个回答

91program
91program   Ds   Rxr 2016.01.23 17:53
已采纳

思路没有什么问题,需要注意界面刷新的实现过程(100ms刷新一次需要防闪屏现象),与如何指示出“能看出目标的移动轨迹”

91program
91program 回复bullzerone: 保存历史数据,可以考虑简单的数据库;或者直接使用内存,但使用内存程序退出后上次的数据无法保存。区分历史位置,可以为数据增加一个标志位;或者简单一些历史数据与当前数据分开存放。
接近 2 年之前 回复
bullzerone
bullzerone 主要是想问怎么想办法保存住历史位置坐标,如何区分什么时候该改变历史位置颜色
接近 2 年之前 回复
qq_27183003
qq_27183003   Ds   Rxr 2016.01.23 19:09

如果只是想把历史数据也画出来,简单的方法建立一个历史数据缓冲区,比如最多保留1000组数:

 int xOld[1000],yOld[1000],count=0;//count来计历史数据个数
 //每一次把count个历史数据全部画出来。
 //可以设个标志int flag=0,如果count>1000了,令flag=1,以后每次把缓冲区的数据都显示了,
 //count=++count%1000,用于循环保存历史数据。
fbi333444
fbi333444   2016.02.01 17:16

是用MFC实现的吗,如果是的话,保存所有有用的点,在onpaint中实现绘图即可,当收到属于调用invalidate()刷新绘图表面。如果你是用的MFC,但是绘图是在计时器中,这样是不好的,你最小化然后恢复正常,绘图可能不见了

fbi333444
fbi333444   2016.02.01 17:17

当收到数据---不是收到属于

fbi333444
fbi333444   2016.02.01 17:18

如果是用mfc实现的,我可以实现一个例子给你,qq:912271691,我需要分数啊

Csdn user default icon
上传中...
上传图片
插入图片