fd pitch ok
This commit is contained in:
+73
-82
@@ -10,9 +10,6 @@
|
||||
Cockpit::Cockpit(QWidget *parent): QWidget(parent)
|
||||
{
|
||||
// setMouseTracking(true);
|
||||
|
||||
|
||||
|
||||
//leftladder = new LeftLadder(this);
|
||||
|
||||
//GPS初始化
|
||||
@@ -105,6 +102,7 @@ Cockpit::~Cockpit()
|
||||
void Cockpit::UpdateTimeout(void)
|
||||
{
|
||||
//qDebug() << "time out";
|
||||
update();
|
||||
}
|
||||
|
||||
|
||||
@@ -131,16 +129,16 @@ void Cockpit::wheelEvent(QWheelEvent *e)
|
||||
//qDebug() << "wheel event" << e;
|
||||
|
||||
setRoll(m_Attitude.roll +0.1f * e->angleDelta().y()/120.0f);
|
||||
setPitch(m_Attitude.pitch +0.1f * e->angleDelta().y()/120.0f);
|
||||
setPitch(m_Attitude.pitch +0.2f * e->angleDelta().y()/120.0f);
|
||||
|
||||
setYaw(m_Attitude.yaw +0.1f * e->angleDelta().y()/120.0f);
|
||||
setYaw(m_Attitude.yaw +0.3f * e->angleDelta().y()/120.0f);
|
||||
|
||||
setAirSpeed(m_Attitude.airspeed +0.1f * e->angleDelta().y()/120.0f);
|
||||
setGPSAltitude(m_GPS.altitude + 0.1f * e->angleDelta().y()/120.0f);
|
||||
setAirSpeed(m_Attitude.airspeed +0.4f * e->angleDelta().y()/120.0f);
|
||||
setGPSAltitude(m_GPS.altitude + 0.5f * e->angleDelta().y()/120.0f);
|
||||
|
||||
m_Target.altitude += 0.1* e->angleDelta().y()/120.0f;;
|
||||
m_Target.altitude += 0.6* e->angleDelta().y()/120.0f;;
|
||||
|
||||
m_Target.airspeed += 0.1f * e->angleDelta().y()/120.0f;;//0.1f * e->angleDelta().y()/120.0f;
|
||||
m_Target.airspeed += 0.7f * e->angleDelta().y()/120.0f;;//0.1f * e->angleDelta().y()/120.0f;
|
||||
|
||||
m_Target.pitch += 0.1f * e->angleDelta().y()/120.0f;;
|
||||
|
||||
@@ -151,7 +149,7 @@ void Cockpit::wheelEvent(QWheelEvent *e)
|
||||
|
||||
m_Target.verticalspeed += 0.1f * e->angleDelta().y()/120.0f;
|
||||
|
||||
m_Attitude.verticalspeed += 0.1f * e->angleDelta().y()/120.0f;
|
||||
m_Attitude.verticalspeed += 0.2f * e->angleDelta().y()/120.0f;
|
||||
|
||||
|
||||
//qDebug() << "wheel event" << m_Attitude.roll << m_Attitude.pitch << m_Attitude.yaw << m_Target.airspeed;
|
||||
@@ -289,37 +287,12 @@ void Cockpit::paintEvent(QPaintEvent *)
|
||||
drawPitch(&painter);
|
||||
drawRoll(&painter);
|
||||
drawRollScale(&painter);
|
||||
|
||||
drawLeftScale(&painter);
|
||||
drawRightScale(&painter);
|
||||
|
||||
drawVRate(&painter);
|
||||
|
||||
drawYawScale(&painter);
|
||||
|
||||
drawTopStatuts(&painter);
|
||||
|
||||
//drawCenterLine(&painter);
|
||||
//drawText(&painter);
|
||||
//drawGPS(&painter);
|
||||
//drawHight(&painter);
|
||||
//drawSpeed(&painter);
|
||||
//drawBattery(&painter);
|
||||
//drawLed(&painter);
|
||||
//drawProtect(&painter);
|
||||
|
||||
|
||||
//drawLowPanel(&painter);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -451,8 +424,9 @@ void Cockpit::drawPitch(QPainter *painter)
|
||||
pen.setColor(m_TargetColor);
|
||||
painter->setPen(pen);
|
||||
//painter->setBrush(m_TargetColor);
|
||||
painter->drawPolygon(PitchPoints_L,4);
|
||||
painter->drawPolygon(PitchPoints_R,4);
|
||||
//painter->drawPolygon(PitchPoints_L,4);
|
||||
//painter->drawPolygon(PitchPoints_R,4);
|
||||
painter->drawLine(-200,0,200,0);
|
||||
painter->restore();
|
||||
|
||||
//画黑色背景
|
||||
@@ -1364,9 +1338,6 @@ void Cockpit::drawVRate(QPainter *painter)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//画航向(位于底部的一个圈)
|
||||
void Cockpit::drawYawScale(QPainter *painter)
|
||||
{
|
||||
@@ -1423,12 +1394,12 @@ void Cockpit::drawYawScale(QPainter *painter)
|
||||
QPointF( 40,-500)
|
||||
};
|
||||
|
||||
ePen.setWidth(5);
|
||||
ePen.setWidth(8);
|
||||
ePen.setColor(m_TargetColor);
|
||||
painter->setPen(ePen);
|
||||
painter->drawPolygon(Tarpoint,8);
|
||||
|
||||
painter->drawLine(0,-100,0,-450);
|
||||
//painter->drawLine(0,-100,0,-450);
|
||||
|
||||
painter->restore();
|
||||
|
||||
@@ -1465,9 +1436,67 @@ void Cockpit::drawYawScale(QPainter *painter)
|
||||
painter->setBrush(m_CurrentColor);
|
||||
painter->drawPolygon(Planepoints,18);
|
||||
|
||||
//painter->drawLine(0,-100,0,-500);
|
||||
//画横竖白色小圈圈
|
||||
//画中间小圆
|
||||
painter->save();
|
||||
|
||||
painter->restore();
|
||||
//一直跟目标垂直
|
||||
//painter->rotate(m_Target.yaw);
|
||||
|
||||
ePen.setWidth(5);
|
||||
ePen.setColor(QColor("#FFFFFF"));
|
||||
painter->setPen(ePen);
|
||||
|
||||
for (int i = -3;i <= 3;i++) {
|
||||
painter->save();
|
||||
painter->translate(i*100,0);
|
||||
|
||||
painter->drawEllipse(-5,-5,10,10);
|
||||
painter->restore();
|
||||
|
||||
painter->save();
|
||||
painter->translate(0,i*100);
|
||||
|
||||
painter->drawEllipse(-5,-5,10,10);
|
||||
painter->restore();
|
||||
}
|
||||
|
||||
//画竖条
|
||||
painter->save();
|
||||
if(abs(m_Attitude.distofly) >= 10)//大于10,对数显示
|
||||
{
|
||||
painter->translate(((m_Attitude.distofly >= 0)?(1.0f):(-1.0f))*log10(abs(m_Attitude.distofly)) * 100,0);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->translate(m_Attitude.distofly * 10.0f,0);//小于10,线性 显示
|
||||
}
|
||||
|
||||
ePen.setWidth(8);
|
||||
ePen.setColor(m_TargetColor);
|
||||
painter->setPen(ePen);
|
||||
painter->drawLine(0,-200,0,200);
|
||||
painter->restore();//画竖条结束
|
||||
|
||||
|
||||
painter->save();//画横条开始
|
||||
if(abs(m_Attitude.distofly) >= 10)//大于10,对数显示
|
||||
{
|
||||
painter->translate(0,((m_Attitude.distofly >= 0)?(1.0f):(-1.0f))*log10(abs(m_Attitude.distofly)) * 100);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->translate(0,m_Attitude.distofly * 10.0f);//小于10,线性 显示
|
||||
}
|
||||
ePen.setWidth(8);
|
||||
ePen.setColor(m_TargetColor);
|
||||
painter->setPen(ePen);
|
||||
painter->drawLine(-200,0,200,0);
|
||||
painter->restore();//画横条结束
|
||||
|
||||
|
||||
painter->restore();//画小圆结束
|
||||
painter->restore();//画小飞机结束
|
||||
|
||||
|
||||
//画一个顶部黑色显示框
|
||||
@@ -1563,45 +1592,7 @@ void Cockpit::drawYawScale(QPainter *painter)
|
||||
}
|
||||
|
||||
|
||||
//画中间小圆
|
||||
painter->save();
|
||||
|
||||
//一直跟目标垂直
|
||||
painter->rotate(m_Target.yaw);
|
||||
|
||||
ePen.setWidth(5);
|
||||
ePen.setColor(QColor("#FFFFFF"));
|
||||
painter->setPen(ePen);
|
||||
|
||||
for (int i = -3;i <= 3;i++) {
|
||||
painter->save();
|
||||
painter->translate(i*100,0);
|
||||
|
||||
painter->drawEllipse(-5,-5,10,10);
|
||||
painter->restore();
|
||||
}
|
||||
|
||||
//画侧偏距
|
||||
painter->save();
|
||||
|
||||
if(abs(m_Attitude.distofly) >= 10)//大于10,对数显示
|
||||
{
|
||||
painter->translate(((m_Attitude.distofly >= 0)?(1.0f):(-1.0f))*log10(abs(m_Attitude.distofly)) * 100,0);
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->translate(m_Attitude.distofly * 10.0f,0);//小于10,线性 显示
|
||||
}
|
||||
|
||||
ePen.setWidth(8);
|
||||
ePen.setColor(m_TargetColor);
|
||||
painter->setPen(ePen);
|
||||
painter->drawLine(0,-100,0,100);
|
||||
|
||||
painter->restore();//画侧偏结束
|
||||
|
||||
|
||||
painter->restore();//画小圆结束
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user