我画了一个太极图,并以一定速率做旋转,发现旋转时出现一条直径,不知怎么回事。效果图和代码如下:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QWidget>
class MainWindow : public QWidget
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
void paintEvent(QPaintEvent *);
private:
double rot;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include <QtGui>
MainWindow::MainWindow(QWidget *parent)
: QWidget(parent),rot(0)
{
setFixedSize(420,420);
QTimer *timer = new QTimer;
connect(timer,SIGNAL(timeout()),this,SLOT(update()));
timer->start(50);
}
MainWindow::~MainWindow()
{
}
void MainWindow::paintEvent(QPaintEvent *)
{
rot += 1;
QPainter painter(this);
painter.setWindow(-210,-210,420,420);
painter.rotate(rot);
painter.setRenderHint(QPainter::Antialiasing,true);
painter.setBrush(QBrush(Qt::black,Qt::SolidPattern));
painter.setPen(QPen(Qt::red,0,Qt::NoPen,Qt::RoundCap));
painter.drawPie(-200,-200,400,400,90*16,180*16);
painter.setBrush(QBrush(Qt::white,Qt::SolidPattern));
painter.drawPie(-200,-200,400,400,270*16,180*16);
painter.drawPie(-100,-200,200,200,90*16,180*16);
painter.setBrush(QBrush(Qt::black,Qt::SolidPattern));
painter.drawPie(-100,0,200,200,270*16,180*16);
painter.drawEllipse(-20,-130,40,40);
painter.setBrush(QBrush(Qt::white,Qt::SolidPattern));
painter.drawEllipse(-20,70,40,40);
}