fix the tar state
This commit is contained in:
+1
-1
@@ -22,7 +22,7 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
|
||||
copk = new Cockpit(this);
|
||||
|
||||
copk->setGeometry(this->width() - copk->width(),0,1000,this->height());
|
||||
copk->setGeometry(this->width() - copk->width(),0,600,this->height());
|
||||
|
||||
|
||||
nav->setGeometry(0,0,50,this->height());
|
||||
|
||||
+288
-269
@@ -109,6 +109,7 @@ void Cockpit::wheelEvent(QWheelEvent *e)
|
||||
setAirSpeed(m_Attitude.airspeed +0.1f * e->angleDelta().y()/120.0f);
|
||||
setGPSAltitude(m_GPS.altitude + e->angleDelta().y()/120.0f);
|
||||
|
||||
m_Target.altitude = 60;
|
||||
|
||||
m_Target.airspeed = 20;//0.1f * e->angleDelta().y()/120.0f;
|
||||
|
||||
@@ -315,7 +316,6 @@ void Cockpit::drawPitch(QPainter *painter)
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setWidth(8);
|
||||
font.setPointSize(50);
|
||||
//font.setWeight(QFont::ExtraLight);
|
||||
font.setFamily("Arial");//非衬线
|
||||
|
||||
painter->setPen(ePen);
|
||||
@@ -629,21 +629,7 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
painter->drawRect(0,-600,300,1200);
|
||||
painter->restore();
|
||||
|
||||
//画最底下的黑色单位显示框
|
||||
painter->save();
|
||||
ePen.setColor(QColor("#FFFFFF"));
|
||||
ePen.setWidth(8);
|
||||
|
||||
font.setPixelSize(60);
|
||||
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
painter->setBrush(QColor("#000000"));
|
||||
painter->drawRect(0,600,300,100);
|
||||
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"TAS " + QString::number(m_Attitude.airspeed,'f',0));
|
||||
|
||||
painter->restore();
|
||||
|
||||
|
||||
//画旁边的速度刻度,并显示
|
||||
@@ -732,25 +718,6 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
|
||||
//画 中间黑色的显示块
|
||||
painter->save();
|
||||
|
||||
/*
|
||||
static const QPointF points1[11] = {
|
||||
QPointF( 0,-50),
|
||||
QPointF(200,-50),
|
||||
QPointF(200,-125),
|
||||
QPointF(275,-125),
|
||||
|
||||
QPointF(275,-25),
|
||||
QPointF(290, 0),
|
||||
QPointF(275, 25),
|
||||
|
||||
QPointF(275, 125),
|
||||
QPointF(200, 125),
|
||||
QPointF(200, 50),
|
||||
QPointF( 0, 50)
|
||||
};
|
||||
*/
|
||||
|
||||
static const QPointF points1[7] = {
|
||||
QPointF( 0,-120),
|
||||
QPointF(225,-120),
|
||||
@@ -852,28 +819,54 @@ void Cockpit::drawLeftScale(QPainter *painter)
|
||||
//画速度目标值(紫色小箭头)
|
||||
painter->save();
|
||||
|
||||
painter->translate(260,-1200.0f/40.0f * (m_Target.airspeed- m_Attitude.airspeed));//设置原点
|
||||
|
||||
ePen.setColor(m_TargetColor);
|
||||
ePen.setWidth(8);
|
||||
painter->setPen(ePen);
|
||||
|
||||
static const QPointF ASTargetpoints2[5] = {
|
||||
QPointF(0, 0),
|
||||
QPointF(40, -30),
|
||||
QPointF(120, -30),
|
||||
QPointF(120, 30),
|
||||
QPointF(40, 30)
|
||||
};
|
||||
float t_y = -1200.0f/40.0f * (m_Target.airspeed- m_Attitude.airspeed);
|
||||
|
||||
painter->drawPolygon(ASTargetpoints2, 5);
|
||||
t_y = (t_y < -600)?(-600):((t_y>600)?(600):(t_y));//限幅
|
||||
|
||||
painter->translate(260,t_y);//设置原点
|
||||
|
||||
if((t_y >= -600)&&(t_y <= 600))
|
||||
{
|
||||
static const QPointF ASTargetpoints2[5] = {
|
||||
QPointF(0, 0),
|
||||
QPointF(40, -30),
|
||||
QPointF(120, -30),
|
||||
QPointF(120, 30),
|
||||
QPointF(40, 30)
|
||||
};
|
||||
painter->drawPolygon(ASTargetpoints2, 5);
|
||||
}
|
||||
painter->restore();
|
||||
|
||||
//给紫色的目标边框打补丁
|
||||
painter->save();
|
||||
painter->setBrush(Qt::black);
|
||||
painter->drawRect(250,-750,150,150);
|
||||
|
||||
painter->setBrush(Qt::black);
|
||||
painter->drawRect(250, 600,150,150);
|
||||
|
||||
painter->restore();
|
||||
|
||||
//画最底下的黑色单位显示框
|
||||
painter->save();
|
||||
ePen.setColor(QColor("#FFFFFF"));
|
||||
ePen.setWidth(8);
|
||||
|
||||
font.setPixelSize(60);
|
||||
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
painter->setBrush(QColor("#000000"));
|
||||
painter->drawRect(0,600,300,100);
|
||||
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"TAS " + QString::number(m_Attitude.airspeed,'f',0));
|
||||
|
||||
painter->restore();
|
||||
|
||||
|
||||
painter->restore();
|
||||
@@ -887,7 +880,7 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
painter->save();
|
||||
|
||||
//平移坐标
|
||||
painter->translate(800,0);
|
||||
painter->translate(600,0);
|
||||
|
||||
QPen ePen;
|
||||
QFont font;
|
||||
@@ -896,38 +889,15 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
painter->setOpacity(0.3f);
|
||||
ePen.setColor(QColor("#7A7A7A"));
|
||||
painter->setBrush(QColor("#7A7A7A"));
|
||||
painter->drawRect(0,-600,400,1200);
|
||||
painter->drawRect(0,-600,300,1200);
|
||||
painter->restore();
|
||||
|
||||
//画最底下的黑色单位显示框
|
||||
painter->save();
|
||||
ePen.setColor(QColor("#FFFFFF"));
|
||||
ePen.setWidth(10);
|
||||
|
||||
|
||||
font.setPixelSize(60);
|
||||
|
||||
font.setWeight(QFont::ExtraLight);
|
||||
font.setFamily("Arial");//非衬线
|
||||
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
painter->setBrush(QColor("#000000"));
|
||||
painter->drawRect(0,600,400,100);
|
||||
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"Hei " + QString::number(m_GPS.altitude));
|
||||
|
||||
painter->restore();
|
||||
|
||||
|
||||
//画旁边的速度刻度,并显示
|
||||
//画旁边的高度刻度,并显示
|
||||
painter->save();
|
||||
|
||||
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)
|
||||
{
|
||||
|
||||
@@ -953,46 +923,98 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
|
||||
if(((i + m_GPS.altitude)* h > 130)||((i + m_GPS.altitude) * h < -130))
|
||||
{
|
||||
painter->drawText(QRect(80,i * h - 30,190,60),Qt::AlignVCenter|Qt::AlignLeft, strText);
|
||||
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->restore();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
painter->restore();
|
||||
|
||||
|
||||
static const QPointF points1[11] = {
|
||||
QPointF( 25,-50),
|
||||
QPointF(300,-50),
|
||||
QPointF(300,-125),
|
||||
//画紫色框
|
||||
painter->save();
|
||||
|
||||
static const QPointF t_h[7] = {
|
||||
QPointF( 20, 0),
|
||||
QPointF( -20,-30),
|
||||
QPointF( -20,-125),
|
||||
QPointF(100,-125),
|
||||
|
||||
QPointF(100, 125),
|
||||
QPointF( -20, 125),
|
||||
QPointF( -20, 30)
|
||||
};
|
||||
|
||||
|
||||
float h_y = -1200.0f/40.0f * (m_Target.altitude- m_GPS.altitude);
|
||||
|
||||
h_y = (h_y < -600)?(-600):((h_y>600)?(600):(h_y));//限幅
|
||||
|
||||
painter->translate(0,h_y);
|
||||
|
||||
ePen.setColor(m_TargetColor);
|
||||
ePen.setWidth(8);
|
||||
painter->setPen(ePen);
|
||||
painter->drawPolygon(t_h, 7);
|
||||
|
||||
painter->restore();
|
||||
|
||||
//给紫色的目标边框打补丁
|
||||
painter->save();
|
||||
painter->setBrush(Qt::black);
|
||||
painter->drawRect(-30,-750,150,150);
|
||||
|
||||
painter->setBrush(Qt::black);
|
||||
painter->drawRect(-30, 600,150,150);
|
||||
|
||||
painter->restore();
|
||||
|
||||
|
||||
//画最底下的黑色单位显示框
|
||||
painter->save();
|
||||
ePen.setColor(QColor("#FFFFFF"));
|
||||
ePen.setWidth(8);
|
||||
|
||||
|
||||
font.setPixelSize(60);
|
||||
|
||||
font.setWeight(QFont::ExtraLight);
|
||||
font.setFamily("Arial");//非衬线
|
||||
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
painter->setBrush(QColor("#000000"));
|
||||
painter->drawRect(0,600,400,100);
|
||||
|
||||
painter->drawText(QRect(20,600,280,100),Qt::AlignLeft|Qt::AlignVCenter,"Hei " + QString::number(m_GPS.altitude));
|
||||
|
||||
painter->restore();
|
||||
|
||||
|
||||
|
||||
//画黑色显示框
|
||||
static const QPointF points1[7] = {
|
||||
QPointF( 40, 0),
|
||||
QPointF( 70,-30),
|
||||
QPointF( 70,-125),
|
||||
QPointF(420,-125),
|
||||
|
||||
QPointF(420, 125),
|
||||
QPointF(300, 125),
|
||||
QPointF(300, 50),
|
||||
QPointF( 25, 50),
|
||||
|
||||
QPointF( 25,-25),
|
||||
QPointF( 0, 0),
|
||||
QPointF( 25, 25)
|
||||
QPointF( 70, 125),
|
||||
QPointF( 70, 30)
|
||||
};
|
||||
|
||||
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setWidth(8);
|
||||
painter->setPen(ePen);
|
||||
|
||||
painter->setBrush(QColor("#000000"));
|
||||
painter->drawPolygon(points1, 11);
|
||||
painter->drawPolygon(points1, 7);
|
||||
|
||||
|
||||
|
||||
@@ -1003,197 +1025,194 @@ void Cockpit::drawRightScale(QPainter *painter)
|
||||
painter->setFont(font);
|
||||
|
||||
|
||||
QString HundredText = QString::number(qAbs(int(m_GPS.altitude/100)));//设置百位以上
|
||||
QString DacadeText = QString::number(int(m_GPS.altitude/10)); //设置十位
|
||||
QString UnitText = QString::number(qAbs(int(m_GPS.altitude)%10)); //设置个位
|
||||
|
||||
if(int(m_GPS.altitude/100) > 0)
|
||||
{
|
||||
painter->drawText(QRect(0,-50,300,100),Qt::AlignVCenter|Qt::AlignRight, HundredText);
|
||||
}
|
||||
else if(int(m_GPS.altitude/100) == 0)
|
||||
{
|
||||
|
||||
}
|
||||
else if(int(m_GPS.altitude/100) < 0)
|
||||
{
|
||||
painter->drawText(QRect(0,-50,300,100),Qt::AlignVCenter|Qt::AlignRight,tr("-") + HundredText);
|
||||
}
|
||||
|
||||
QString HundredText = QString::number(qAbs(int(m_GPS.altitude/100)));//设置百位以上
|
||||
QString DacadeText = QString::number(int(m_GPS.altitude/10)); //设置十位
|
||||
QString UnitText = QString::number(qAbs(int(m_GPS.altitude)%10)); //设置个位
|
||||
float Unit = m_GPS.altitude - int(m_GPS.altitude)/10 * 10;
|
||||
float Dacade = float(int(m_GPS.altitude)%100)/10.0f;
|
||||
|
||||
if(int(m_GPS.altitude/100) > 0)
|
||||
{
|
||||
painter->drawText(QRect(0,-50,300,100),Qt::AlignVCenter|Qt::AlignRight, HundredText);
|
||||
}
|
||||
else if(int(m_GPS.altitude/100) == 0)
|
||||
{
|
||||
float Decimal = qAbs(m_GPS.altitude - int(m_GPS.altitude));
|
||||
float m_Unit =qAbs(Dacade - int(Dacade));
|
||||
|
||||
}
|
||||
else if(int(m_GPS.altitude/100) < 0)
|
||||
{
|
||||
painter->drawText(QRect(0,-50,300,100),Qt::AlignVCenter|Qt::AlignRight,tr("-") + HundredText);
|
||||
}
|
||||
//qDebug() << Dacade << m_Unit;
|
||||
//写十位
|
||||
int count = 1;
|
||||
|
||||
float Unit = m_GPS.altitude - int(m_GPS.altitude)/10 * 10;
|
||||
float Dacade = float(int(m_GPS.altitude)%100)/10.0f;
|
||||
for(int i = -1.5 - Dacade;i<(1.5 - Dacade);i+=1)
|
||||
{
|
||||
|
||||
float Decimal = qAbs(m_GPS.altitude - int(m_GPS.altitude));
|
||||
float m_Unit =qAbs(Dacade - int(Dacade));
|
||||
QString strText = QString::number(((-i < 0)?(-i+10):((-i>=10)?(-i-10):(-i)))); //设置当前字体
|
||||
painter->save();
|
||||
|
||||
qDebug() << Dacade << m_Unit;
|
||||
//写十位
|
||||
int count = 1;
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setWidth(10);
|
||||
font.setPointSize(70);
|
||||
|
||||
for(int i = -1.5 - Dacade;i<(1.5 - Dacade);i+=1)
|
||||
{
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
|
||||
QString strText = QString::number(((-i < 0)?(-i+10):((-i>=10)?(-i-10):(-i)))); //设置当前字体
|
||||
painter->save();
|
||||
painter->translate(300,(i + Dacade) * 120 - 60);
|
||||
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setWidth(15);
|
||||
font.setPointSize(90);
|
||||
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
|
||||
painter->translate(300,(i + Dacade) * 120 - 60);
|
||||
|
||||
//此段程序在未理解之前,请不要随意修改
|
||||
switch (count) {
|
||||
case 1:
|
||||
if(m_Unit <= 0.5f)
|
||||
{
|
||||
if((60 - 120 * m_Unit) != 0)
|
||||
{
|
||||
if(m_GPS.altitude < 1000)
|
||||
{
|
||||
painter->drawText(QRect(0,60 - 120 * m_Unit ,60,60 + 120 * m_Unit ),Qt::AlignBottom|Qt::AlignLeft, strText);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawText(QRect(0,60 - 120 * m_Unit ,60,60 + 120 * m_Unit ),Qt::AlignBottom|Qt::AlignLeft, strText);
|
||||
painter->drawText(QRect(60,60 - 120 * m_Unit ,60,60 + 120 * m_Unit ),Qt::AlignBottom|Qt::AlignLeft, QString::number(0));
|
||||
}
|
||||
}
|
||||
}
|
||||
else //>0.5
|
||||
{
|
||||
if(m_GPS.altitude < 1000)
|
||||
{
|
||||
painter->drawText(QRect(0,120 - 120 * (m_Unit - 0.5) ,60,120 * (m_Unit - 0.5)),Qt::AlignBottom|Qt::AlignLeft, strText);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawText(QRect(0,120 - 120 * (m_Unit - 0.5) ,60,120 * (m_Unit - 0.5)),Qt::AlignBottom|Qt::AlignLeft, strText);
|
||||
painter->drawText(QRect(60,120 - 120 * (m_Unit - 0.5) ,60,120 * (m_Unit - 0.5)),Qt::AlignBottom|Qt::AlignLeft, QString::number(0));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if(m_GPS.altitude < 1000)
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, strText);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, strText);
|
||||
painter->drawText(QRect(60,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, QString::number(0));
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if(m_Unit <= 0.5f)
|
||||
{
|
||||
if((60 - 120 * m_Unit) != 0)
|
||||
{
|
||||
if(m_GPS.altitude < 1000)
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,60 - 120 * m_Unit),Qt::AlignTop|Qt::AlignLeft, strText);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,60 - 120 * m_Unit),Qt::AlignTop|Qt::AlignLeft, strText);
|
||||
painter->drawText(QRect(60,0,60,60 - 120 * m_Unit),Qt::AlignTop|Qt::AlignLeft, QString::number(0));
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_GPS.altitude < 1000)
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, strText);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, strText);
|
||||
painter->drawText(QRect(60,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, QString::number(0));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_GPS.altitude < 1000)
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,120 - 120 * (m_Unit - 0.5)),Qt::AlignTop|Qt::AlignLeft, strText);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,120 - 120 * (m_Unit - 0.5)),Qt::AlignTop|Qt::AlignLeft, strText);
|
||||
painter->drawText(QRect(60,0,60,120 - 120 * (m_Unit - 0.5)),Qt::AlignTop|Qt::AlignLeft, QString::number(0));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
count++;
|
||||
painter->restore();
|
||||
}
|
||||
|
||||
//写个位
|
||||
if(m_GPS.altitude < 1000)
|
||||
{
|
||||
count = 1;
|
||||
for(int i = -1.5 - Unit;i<(1.5 - Unit);i+=1)
|
||||
{
|
||||
|
||||
QString strText = QString::number(((-i < 0)?(-i+10):((-i>=10)?(-i-10):(-i)))); //设置当前字体
|
||||
painter->save();
|
||||
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setWidth(15);
|
||||
font.setPointSize(90);
|
||||
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
|
||||
painter->translate(300,(i + Unit) * 120 - 60);
|
||||
|
||||
//此段程序在未理解之前,请不要随意修改
|
||||
switch (count) {
|
||||
case 1:
|
||||
if(Decimal <= 0.5f)
|
||||
{
|
||||
if((60 - 120 * Decimal) != 0)
|
||||
painter->drawText(QRect(60,60 - 120 * Decimal ,60,60 + 120 * Decimal ),Qt::AlignBottom|Qt::AlignLeft, strText);
|
||||
}
|
||||
else //>0.5
|
||||
{
|
||||
painter->drawText(QRect(60,120 - 120 * (Decimal - 0.5) ,60,120 * (Decimal - 0.5)),Qt::AlignBottom|Qt::AlignLeft, strText);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
painter->drawText(QRect(60,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, strText);
|
||||
break;
|
||||
case 3:
|
||||
if(Decimal <= 0.5f)
|
||||
{
|
||||
if((60 - 120 * Decimal) != 0)
|
||||
painter->drawText(QRect(60,0,60,60 - 120 * Decimal),Qt::AlignTop|Qt::AlignLeft, strText);
|
||||
else
|
||||
painter->drawText(QRect(60,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, strText);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawText(QRect(60,0,60,120 - 120 * (Decimal - 0.5)),Qt::AlignTop|Qt::AlignLeft, strText);
|
||||
}
|
||||
break;
|
||||
//此段程序在未理解之前,请不要随意修改
|
||||
switch (count) {
|
||||
case 1:
|
||||
if(m_Unit <= 0.5f)
|
||||
{
|
||||
if((60 - 120 * m_Unit) != 0)
|
||||
{
|
||||
if(m_GPS.altitude < 1000)
|
||||
{
|
||||
painter->drawText(QRect(0,60 - 120 * m_Unit ,60,60 + 120 * m_Unit ),Qt::AlignBottom|Qt::AlignLeft, strText);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawText(QRect(0,60 - 120 * m_Unit ,60,60 + 120 * m_Unit ),Qt::AlignBottom|Qt::AlignLeft, strText);
|
||||
painter->drawText(QRect(60,60 - 120 * m_Unit ,60,60 + 120 * m_Unit ),Qt::AlignBottom|Qt::AlignLeft, QString::number(0));
|
||||
}
|
||||
}
|
||||
}
|
||||
else //>0.5
|
||||
{
|
||||
if(m_GPS.altitude < 1000)
|
||||
{
|
||||
painter->drawText(QRect(0,120 - 120 * (m_Unit - 0.5) ,60,120 * (m_Unit - 0.5)),Qt::AlignBottom|Qt::AlignLeft, strText);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawText(QRect(0,120 - 120 * (m_Unit - 0.5) ,60,120 * (m_Unit - 0.5)),Qt::AlignBottom|Qt::AlignLeft, strText);
|
||||
painter->drawText(QRect(60,120 - 120 * (m_Unit - 0.5) ,60,120 * (m_Unit - 0.5)),Qt::AlignBottom|Qt::AlignLeft, QString::number(0));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if(m_GPS.altitude < 1000)
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, strText);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, strText);
|
||||
painter->drawText(QRect(60,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, QString::number(0));
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if(m_Unit <= 0.5f)
|
||||
{
|
||||
if((60 - 120 * m_Unit) != 0)
|
||||
{
|
||||
if(m_GPS.altitude < 1000)
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,60 - 120 * m_Unit),Qt::AlignTop|Qt::AlignLeft, strText);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,60 - 120 * m_Unit),Qt::AlignTop|Qt::AlignLeft, strText);
|
||||
painter->drawText(QRect(60,0,60,60 - 120 * m_Unit),Qt::AlignTop|Qt::AlignLeft, QString::number(0));
|
||||
}
|
||||
|
||||
count++;
|
||||
painter->restore();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_GPS.altitude < 1000)
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, strText);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, strText);
|
||||
painter->drawText(QRect(60,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, QString::number(0));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_GPS.altitude < 1000)
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,120 - 120 * (m_Unit - 0.5)),Qt::AlignTop|Qt::AlignLeft, strText);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawText(QRect(0,0,60,120 - 120 * (m_Unit - 0.5)),Qt::AlignTop|Qt::AlignLeft, strText);
|
||||
painter->drawText(QRect(60,0,60,120 - 120 * (m_Unit - 0.5)),Qt::AlignTop|Qt::AlignLeft, QString::number(0));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
count++;
|
||||
painter->restore();
|
||||
}
|
||||
|
||||
//写个位
|
||||
if(m_GPS.altitude < 1000)
|
||||
{
|
||||
count = 1;
|
||||
for(int i = -1.5 - Unit;i<(1.5 - Unit);i+=1)
|
||||
{
|
||||
|
||||
QString strText = QString::number(((-i < 0)?(-i+10):((-i>=10)?(-i-10):(-i)))); //设置当前字体
|
||||
painter->save();
|
||||
|
||||
ePen.setColor(m_CentreLineColor);
|
||||
ePen.setWidth(10);
|
||||
font.setPointSize(70);
|
||||
|
||||
painter->setPen(ePen);
|
||||
painter->setFont(font);
|
||||
|
||||
painter->translate(300,(i + Unit) * 120 - 60);
|
||||
|
||||
//此段程序在未理解之前,请不要随意修改
|
||||
switch (count) {
|
||||
case 1:
|
||||
if(Decimal <= 0.5f)
|
||||
{
|
||||
if((60 - 120 * Decimal) != 0)
|
||||
painter->drawText(QRect(60,60 - 120 * Decimal ,60,60 + 120 * Decimal ),Qt::AlignBottom|Qt::AlignLeft, strText);
|
||||
}
|
||||
else //>0.5
|
||||
{
|
||||
painter->drawText(QRect(60,120 - 120 * (Decimal - 0.5) ,60,120 * (Decimal - 0.5)),Qt::AlignBottom|Qt::AlignLeft, strText);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
painter->drawText(QRect(60,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, strText);
|
||||
break;
|
||||
case 3:
|
||||
if(Decimal <= 0.5f)
|
||||
{
|
||||
if((60 - 120 * Decimal) != 0)
|
||||
painter->drawText(QRect(60,0,60,60 - 120 * Decimal),Qt::AlignTop|Qt::AlignLeft, strText);
|
||||
else
|
||||
painter->drawText(QRect(60,0,60,120),Qt::AlignVCenter|Qt::AlignLeft, strText);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawText(QRect(60,0,60,120 - 120 * (Decimal - 0.5)),Qt::AlignTop|Qt::AlignLeft, strText);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
count++;
|
||||
painter->restore();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -75,7 +75,7 @@ typedef struct{
|
||||
|
||||
float heading;//航线方向
|
||||
float position;//侧偏距
|
||||
|
||||
float altitude;//海拔
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user