绘制卫星视图的圆,标记方位角
void skyViewer::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing,true);
painter.setPen(Qt::green);
// 绘制圆
painter.drawEllipse(centerPoint,mRadius,mRadius);
painter.drawEllipse(centerPoint,mRadius/2,mRadius/2);
// 画刻度
QPen &pen = const_cast<QPen&>(painter.pen());
pen.setStyle(Qt::DotLine);
pen.setColor(Qt::green);
painter.setPen(pen);
QFontMetrics m(painter.font());
for(int i=0;i<360;i+=30)
{
QPointF pt = trans(i, centerPoint, mRadius);
painter.drawLine(centerPoint, pt); // 绘制两点构成的线段
QString strText = QString::number(i); // 将数字转成字符串
// 坐标原点和坐标系保存下来,不受坐标平移和旋转的影响,只需要restore就可以恢复了
painter.save();
QSize nSize = m.size(Qt::TextSingleLine , strText); // 字符串的长度和宽度像素值
//【1】偏移