本帖最后由 东方巽雷 于 2013-5-9 20:56 编辑
我画了一个太极图,并以一定速率做旋转,发现旋转时出现一条直径,不知怎么回事。效果图和代码如下:
- #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);
- }
复制代码 |