This commit is contained in:
2020-01-12 20:10:41 +08:00
parent 70b5eb7caf
commit 39fde16d74
3 changed files with 42 additions and 23 deletions
+3
View File
@@ -82,6 +82,9 @@ MainWindow::MainWindow(QWidget *parent)
MainWindow::~MainWindow()
{
copk->deleteLater();
delete copk;
}
+38 -23
View File
@@ -61,8 +61,10 @@ Cockpit::Cockpit(QWidget *parent): QWidget(parent)
m_LedColor = Qt::green;
m_TargetColor = QColor("#B23AEE");
m_CurrentColor = QColor("#FFFFFF");
m_TargetColor = QColor("#FF00FF");
m_CurrentColor = QColor("#00FF00");
m_StatusColor = QColor("#00FF00");
m_WColor = QColor("#458B00");
@@ -805,7 +807,7 @@ void Cockpit::drawRightScale(QPainter *painter)
painter->translate(0,1200.0f/40.0f * m_GPS.altitude);
float h = 1200.0f/40.0f;//单位高度
for(int i = -19 - m_GPS.altitude;i<=(19 - m_GPS.altitude);i+=1)
for(int i = -21 - m_GPS.altitude;i<=(21 - m_GPS.altitude);i+=1)
{
QString strText = QString::number(-i); //设置当前字体
@@ -827,15 +829,12 @@ void Cockpit::drawRightScale(QPainter *painter)
{
painter->drawLine(0,i * h,70,i * h);
painter->drawText(QRect(80,i * h - 30,220,80),Qt::AlignVCenter|Qt::AlignRight, strText);
if(((i + m_GPS.altitude)* h > 130)||((i + m_GPS.altitude) * h < -130))
{
painter->drawText(QRect(80,i * h - 30,220,80),Qt::AlignVCenter|Qt::AlignRight, strText);
}
}
else if((i%2) == 0)
{
painter->drawLine(0,i * h,50,i * h);
//painter->drawLine(0,i * h,50,i * h);
}
painter->restore();
}
@@ -873,10 +872,10 @@ void Cockpit::drawRightScale(QPainter *painter)
//给紫色的目标边框打补丁
painter->save();
painter->setBrush(Qt::black);
painter->drawRect(-30,-750,150,150);
painter->drawRect(-30,-750,350,150);
painter->setBrush(Qt::black);
painter->drawRect(-30, 600,150,150);
painter->drawRect(-30, 600,350,150);
painter->restore();
@@ -1168,7 +1167,7 @@ void Cockpit::drawYawScale(QPainter *painter)
//画顶部紫色目标值
//画顶部紫色目标值 (紫色在白色下面,并且在刻度上面,并且有一部分会重叠)
painter->save();
//旋转
painter->rotate(m_Target.yaw - m_Attitude.yaw);
@@ -1197,20 +1196,34 @@ void Cockpit::drawYawScale(QPainter *painter)
//画一个中间小飞机
painter->save();
static const QPointF Planepoints[18] = {
QPointF( 0,-50),
QPointF(-10,-40),
QPointF(-10,-20),
QPointF(-50, 0),
QPointF(-50, 10),
QPointF(-10, 5),
QPointF(-10, 35),
QPointF(-20, 45),
QPointF(-20, 50),
QPointF( 0, 47),
QPointF( 20, 50),
QPointF( 20, 45),
QPointF( 10, 35),
QPointF( 10, 5),
QPointF( 50, 10),
QPointF( 50, 0),
QPointF( 10,-20),
QPointF( 10,-40)
static const QPointF Planepoints[3] = {
QPointF(-30,50),
QPointF(0,-50),
QPointF( 30,50)
};
ePen.setWidth(1);
ePen.setColor(m_CurrentColor);
painter->setPen(ePen);
painter->setPen(Qt::NoPen);
painter->setBrush(m_CurrentColor);
painter->drawPolygon(Planepoints,3);
painter->drawPolygon(Planepoints,18);
//painter->drawLine(0,-100,0,-500);
@@ -1270,25 +1283,27 @@ void Cockpit::drawYawScale(QPainter *painter)
if((i%6) == 0)
{
QString Flag = "";
if((i == 0)||(i == 18)||(i == 36)||(i == 54))
{
switch (i) {
case 0:
painter->drawText( -20,-380, "N");
Flag = "N";
break;
case 18:
painter->drawText( -20,-380, "E");
Flag = "E";
break;
case 36:
painter->drawText( -20,-380, "S");
Flag = "S";
break;
case 54:
painter->drawText( -20,-380, "W");
Flag = "W";
break;
default:
break;
}
painter->drawText(QRect(-40,-450,80,80),Qt::AlignVCenter|Qt::AlignHCenter,Flag);
}
else
{
+1
View File
@@ -220,6 +220,7 @@ private:
QColor m_CurrentColor;
QColor m_TargetColor;
QColor m_StatusColor;
QColor m_WColor;