1 #include "gaugehorizon.h"
5 GaugeHorizon::GaugeHorizon(QGraphicsItem *parent) :
12 void GaugeHorizon::paint(QPainter *painter,const QStyleOptionGraphicsItem *option,
15 drawHorizon(painter,-1.0*m_value,5*m_value2);
17 //////////////////////////////////////////////////////////////////////////
18 void GaugeHorizon::drawHorizon(QPainter *painter, float roll, float pitch)
25 int tx, ctx, xd, i, j ;
26 int xo, yo, x1, x2, y1, y2;
31 plane+=QLine(xo-50,yo,xo-20,yo);
32 plane+=QLine(xo-20,yo,xo-10,yo+10);
33 plane+=QLine(xo-10,yo+10,xo,yo);
34 plane+=QLine(xo,yo,xo+10,yo+10);
35 plane+=QLine(xo+20,yo,xo+10,yo+10);
36 plane+=QLine(xo+50,yo,xo+20,yo);
39 static float sintable[]={sin(15*3.141592653/180.0),
40 sin(30*3.141592653/180.0),
41 sin(45*3.141592653/180.0),
42 sin(60*3.141592653/180.0)};
44 static float costable[]={cos(15*3.141592653/180.0),
45 cos(30*3.141592653/180.0),
46 cos(45*3.141592653/180.0),
47 cos(60*3.141592653/180.0)};
52 fixo+=QLine(xo,yo-arc0,xo,yo-arc1);
53 for (i = 0; i < 4; i++) {
54 fixo+=QLine(xo+arc0*costable[i],yo-arc0*sintable[i],xo+arc1*costable[i],yo-arc1*sintable[i]);
55 fixo+=QLine(xo-arc0*costable[i],yo-arc0*sintable[i],xo-arc1*costable[i],yo-arc1*sintable[i]);
59 tx = (int)(xo * tan(roll * 3.141592653/180.0));
62 QTransform savematrix= painter->transform ();
63 // painter->setClipRect(QRect(0,0, size().width(),size().height()/2));
65 painter->setTransform(QTransform().translate(xo+scenePos().x(), yo+scenePos().y()+pitch).rotate(roll));
67 QBrush whitebrush(Qt::green);
68 painter->setBrush(whitebrush);
69 QPen whitepen(Qt::green);
71 painter->setPen(whitepen);
74 painter->drawLine(50+xo, 0+yo,-50+xo, 0+yo);
75 painter->drawLine(40+xo, 50+yo,-40+xo, 50+yo);
76 painter->drawLine(40+xo, 100+yo,-40+xo, 100+yo);
77 painter->drawLine(40+xo, -50+yo,-40+xo, -50+yo);
78 painter->drawLine(40+xo, -100+yo,-40+xo,-100+yo);
80 painter->drawText( 43+xo,-40+yo,"10");
81 painter->drawText(-63+xo,-40+yo,"10");
82 painter->drawText( 43+xo,-90+yo,"20");
83 painter->drawText(-63+xo,-90+yo,"20");
84 painter->drawText( 43+xo, 40+yo,"10");
85 painter->drawText(-63+xo, 40+yo,"10");
86 painter->drawText( 43+xo, 90+yo,"20");
87 painter->drawText(-63+xo, 90+yo,"20");
90 // painter->rotate(0);
91 painter->setTransform(savematrix);
92 QPen bluepen(Qt::blue);
94 painter->setPen(bluepen);
95 painter->drawLines(fixo);
96 painter->drawLines(plane);