Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "widget.h"
- #include "ui_widget.h"
- Widget::Widget(QWidget *parent)
- : QWidget(parent)
- , ui(new Ui::Widget)
- {
- ui->setupUi(this);
- //все начальные координаты для таймера
- /*int t0=0;
- int Dt=333;
- int x0=230;
- int y0=210;
- int R=200;
- double x_cur1;
- double y_cur1;
- double x_cur2;
- double y_cur2;*/
- timer = new QTimer(this);
- timer->setInterval(11);
- pen.setColor(Qt::black);
- pen.setStyle(Qt::SolidLine);
- pen.setWidth(1);
- connect(timer, SIGNAL(timeout()), this, SLOT(myTimerEvent()));
- }
- Widget::~Widget()
- {
- delete ui;
- }
- void Widget::draw_mill(QPainter &paint){
- paint.setPen(QPen(Qt::black, 1));
- paint.setBrush(QBrush(Qt::gray));
- QPolygon poly;
- poly << QPoint(290, 285) << QPoint(290, 270) << QPoint(430, 300) << QPoint(430, 315);
- paint.drawPolygon(poly);
- paint.setBrush(QColor(85, 200, 255));
- QPolygon polygon;
- polygon << QPoint(170, 350) << QPoint(290, 350) << QPoint(330, 610) << QPoint(130, 610);
- paint.drawPolygon(polygon);
- //------------------------
- paint.setBrush(QColor(249, 164, 70));
- paint.drawRect(200, 510, 60, 100);
- paint.setBrush(QBrush(Qt::black, Qt::VerPattern));
- paint.drawRect(200, 510, 60, 100);//door
- //------------------------
- paint.setBrush(QColor(85, 200, 255));
- paint.drawRect(170, 250, 120, 100);
- paint.setBrush(QBrush(Qt::red));
- QPolygon polygon1;
- polygon1 << QPoint(150, 250) << QPoint(230, 150) << QPoint(310, 250);//roof
- //-------------------------
- paint.drawPolygon(polygon1);
- paint.setBrush(QColor(128, 64, 64));
- paint.drawEllipse(210, 190, 40, 40);
- paint.setBrush(QColor(85, 200, 255));
- paint.drawEllipse(223, 203, 14, 14);//ось мельницы центр -230/210
- //--------------------------
- paint.setBrush(QColor(253, 206, 128));
- QPolygon hill;
- hill << QPoint(x_hill1, y_hill1) << QPoint(x_hill2, y_hill2) << QPoint(x_hill3, y_hill3);
- paint.drawPolygon(hill);
- //---------------------------
- paint.setBrush(QColor(128, 64, 64));
- QPolygon polygon2;
- polygon2 << QPoint(x_cur1, y_cur1) << QPoint(230, 210) << QPoint(x_cur2, y_cur2);
- paint.drawPolygon(polygon2);
- QPolygon polygon3;
- polygon3 << QPoint(x_cur12, y_cur12) << QPoint(230, 210) << QPoint(x_cur22, y_cur22);
- paint.drawPolygon(polygon3);
- QPolygon polygon4;
- polygon4 << QPoint(x_cur3, y_cur3) << QPoint(230, 210) << QPoint(x_cur4, y_cur4);
- paint.drawPolygon(polygon4);
- QPolygon polygon5;
- polygon5 << QPoint(x_cur32, y_cur32) << QPoint(230, 210) << QPoint(x_cur42, y_cur42);
- paint.drawPolygon(polygon5);
- }
- void Widget::myTimerEvent(){
- //код
- /*x_cur1=x0+R*qCos(t0*(M_PI/(180*16)));
- y_cur1=y0+R*qSin(t0*(M_PI/(180*16)));
- x_cur12=460-x_cur1;
- y_cur12=420-y_cur1;
- x_cur2=x0+R*qCos((t0+Dt)*(M_PI/(180*16)));
- y_cur2=y0+R*qSin((t0+Dt)*(M_PI/(180*16)));
- x_cur22=460-x_cur2;
- y_cur22=420-y_cur2;
- x_cur3=440-y_cur1;//x0+R*qCos((t0+667)*(M_PI/(180*16)));
- y_cur3=x_cur1-20;//y0+R*qSin((t0+667)*(M_PI/(180*16)));
- x_cur4=(x_cur3-230)*qCos(30*(M_PI/(180)))-(y_cur3-210)*qSin(30*(M_PI/(180)))+230;//x0+R*qCos((t0+667+Dt)*(M_PI/(180*16)));
- y_cur4=(x_cur3-230)*qSin(30*(M_PI/(180)))+(y_cur3-210)*qCos(30*(M_PI/(180)))+210;//y0+R*qSin((t0+667+Dt)*(M_PI/(180*16)));
- x_cur32=460-x_cur3;
- y_cur32=420-y_cur3;
- x_cur42=460-x_cur4;
- y_cur42=420-y_cur4;*/
- /*x_cur1 = x0 + R*cos(0.0005*t0*M_PI);
- y_cur1 = y0 + R*sin(0.0005*t0*M_PI);
- x_cur2 = x0 + R*cos(0.0005*(t0+Dt)*M_PI);
- y_cur2 = y0 + R*sin(0.0005*(t0+Dt)*M_PI);
- x_cur12 = x0 - R*sin(0.0005*t0*M_PI);
- y_cur22 = y0 + R*cos(0.0005*t0*M_PI);
- x_cur22 = x0 - R*sin(0.0005*(t0+Dt)*M_PI);
- y_cur22 = y0 + R*cos(0.0005*(t0+Dt)*M_PI);
- x_cur3 = x0 - R*cos(0.0005*t0*M_PI);
- y_cur3 = y0 - R*sin(0.0005*t0*M_PI);
- x_cur4 = x0 - R*cos(0.0005*(t0+Dt)*M_PI);
- y_cur4 = y0 - R*sin(0.0005*(t0+Dt)*M_PI);
- x_cur32 = x0 + R*sin(0.0005*t0*M_PI);
- y_cur32 = y0 - R*cos(0.0005*t0*M_PI);
- x_cur42 = x0 + R*sin(0.0005*(t0+Dt)*M_PI);
- y_cur42 = y0 - R*cos(0.0005*(t0+Dt)*M_PI);*/
- x_hill1=x_hill1-0.1;
- y_hill1=610;
- x_hill2=430;
- y_hill2=y_hill2-0.1;;
- x_hill3=x_hill3+0.1;
- y_hill3=610;
- //---------------------------
- x_cur1=x0+R*cos(t0*(M_PI/(180)));
- y_cur1=y0+R*sin(t0*(M_PI/(180)));
- x_cur12=460-x_cur1;
- y_cur12=420-y_cur1;
- x_cur2=x0+R*cos((t0+Dt)*(M_PI/(180)));
- y_cur2=y0+R*sin((t0+Dt)*(M_PI/(180)));
- x_cur22=460-x_cur2;
- y_cur22=420-y_cur2;
- x_cur3=x0-R*sin(t0*(M_PI/180));
- y_cur3=y0+R*cos(t0*(M_PI/180));
- x_cur4=x0-R*sin((t0+Dt)*(M_PI/180));
- y_cur4=y0+R*cos((t0+Dt)*(M_PI/180));
- x_cur32=460-x_cur3;
- y_cur32=420-y_cur3;
- x_cur42=460-x_cur4;
- y_cur42=420-y_cur4;
- t0+=11;
- repaint();
- }
- void Widget::paintEvent(QPaintEvent*){
- QPainter paint;
- //paint.setRenderHint(QPainter::Antialiasing, true);
- paint.begin(this);
- draw_mill(paint);
- paint.end();
- }
- void Widget::on_pushButton_clicked()
- {
- QSound sound("C:\\Users\\Константин\\Downloads\\Sound_06952.wav");
- if(timer->isActive()){
- ui->pushButton->setText("Start");
- timer->stop();
- sound.stop();
- }
- else{
- ui->pushButton->setText("Stop");
- timer->start();
- //QSound::play("C:\\Users\\Константин\\Downloads\\Sound_06952.wav");
- sound.setLoops(3);
- sound.play();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement