实现实时接收点信息并在雷达图上刷新,雷达图扫描效果为逆时针锥形渐变效果。主要包括的图像元素有:方位、比例尺、点信息图例等,实际效果如下:
绘制时在paintevent中每次都会绘制雷达的刻度等信息,重复工作过多。考虑将这些不需要多次重复绘制的内容都一次性划到QPixmap上保存图片,在paintevent绘制刷新时只需要将图片通过drawPixmap方法绘制成背景,然后再更新其他实时刷新的内容如扫描效果以及点信息等。
生成的雷达背景图片如下:
绘制背景图代码如下:
void RadarScan::generateBackground()
{
QPixmap pixMap(this->width(), this->height());
QPainter painter(&pixMap);
painter.fillRect(this->rect(), QBrush(Qt::transparent));
painter.setRenderHint(QPainter::Antialiasing);
/** 直径在中央, 按5圈绘制雷达图**/
int k = 100*g_deskWidth/1920;
int diameter = this->width()-k;