Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <QApplication>
- #include <QWidget>
- #include <QTimer>
- #include <QPainter>
- #include <qmath.h>
- class MyWidget : public QWidget {
- Q_OBJECT
- public:
- MyWidget() : m_angle(0) {
- QTimer * animTimer = new QTimer(this);
- connect(animTimer, SIGNAL(timeout()), this, SLOT(animate()));
- animTimer->start(33);
- }
- protected:
- void paintEvent(QPaintEvent * e) {
- QWidget::paintEvent(e);
- QSize s = size();
- float radius = qMin(s.width(), s.height()) * 0.49;
- QPointF center(s.width() / 2.0, s.height() / 2.0);
- enum { Sides = 3 };
- QPointF vertices[Sides];
- for(int i = 0; i < Sides; ++i) {
- double angle = m_angle + (2.0 * M_PI) * (i / (double)Sides);
- vertices[i] = QPointF(
- radius * cos(angle),
- radius * sin(angle));
- vertices[i] += center;
- }
- QPainter painter(this);
- painter.setBrush(Qt::black);
- painter.drawPolygon(vertices, Sides);
- }
- private slots:
- void animate() {
- m_angle += 0.05;
- if(m_angle > M_PI * 2) {
- m_angle -= M_PI;
- }
- update();
- }
- private:
- double m_angle;
- };
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- MyWidget w;
- w.show();
- return a.exec();
- }
- #include "main.moc"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement