Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "MainWindow.h"
- #include "ui_MainWindow.h"
- #include <QDebug>
- #include "matrix.h"
- #include "convert.h"
- #include "array.h"
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- std::vector<Edge<Point>> edges {
- Edge<Point>({150, 150, 50}, {150, 50, 50}),
- Edge<Point>({50, 150, 50}, {150, 150, 50}),
- Edge<Point>({150, 150, 50}, {150, 150, 150}),
- Edge<Point>({50, 50, 50}, {150, 50, 50}),
- Edge<Point>({50, 50, 50}, {50, 150, 50}),
- Edge<Point>({50, 50, 50}, {50, 50, 150}),
- Edge<Point>({50, 150, 150}, {50, 150, 50}),
- Edge<Point>({50, 150, 150}, {50, 50, 150}),
- Edge<Point>({50, 150, 150}, {150, 150, 150}),
- Edge<Point>({150, 50, 150}, {50, 50, 150}),
- Edge<Point>({150, 50, 150}, {150, 150, 150}),
- Edge<Point>({150, 50, 150}, {150, 50, 50}),
- };
- figure_ = new Figure(edges, Point(100, 100, 100));
- line_x = new Figure(std::vector<Edge<Point>>{Edge<Point>({200, 200, 200}, {400, 200, 200})}, Point(200, 200, 200));
- line_y = new Figure(std::vector<Edge<Point>>{Edge<Point>({200, 200, 200}, {200, 400, 200})}, Point(200, 200, 200));
- line_z = new Figure(std::vector<Edge<Point>>{Edge<Point>({200, 200, 200}, {200, 200, 400})}, Point(200, 200, 200));
- line_x->rotationOY(30);
- line_y->rotationOY(30);
- line_z->rotationOY(30);
- figure_->rotationOY(30);
- line_x->rotationOX(-30);
- line_y->rotationOX(-30);
- line_z->rotationOX(-30);
- figure_->rotationOX(-30);
- line_x->rotationOZ(180);
- line_y->rotationOZ(180);
- line_z->rotationOZ(180);
- figure_->rotationOZ(180);
- ui->canvas->DrawItem(line_x);
- ui->canvas->DrawItem(line_y);
- ui->canvas->DrawItem(line_z);
- ui->canvas->DrawItem(figure_);
- prev_angle_x_ = prev_angle_y_ = prev_angle_z_ = 0;
- ui->scrollBarOX->setRange(0, 360);
- ui->scrollBarOX->setValue(prev_angle_x_);
- ui->scrollBarOY->setRange(0, 360);
- ui->scrollBarOY->setValue(prev_angle_y_);
- ui->scrollBarOZ->setRange(0, 360);
- ui->scrollBarOZ->setValue(prev_angle_z_);
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- void MainWindow::on_scrollBarOX_valueChanged(int value)
- {
- int diff_angle = value - prev_angle_x_;
- prev_angle_x_ = value;
- figure_->rotationOX(diff_angle);
- ui->canvas->Repaint();
- }
- void MainWindow::on_scrollBarOY_valueChanged(int value)
- {
- int diff_angle = value - prev_angle_y_;
- prev_angle_y_ = value;
- figure_->rotationOY(diff_angle);
- ui->canvas->Repaint();
- }
- void MainWindow::on_scrollBarOZ_valueChanged(int value)
- {
- int diff_angle = value - prev_angle_z_;
- prev_angle_z_ = value;
- figure_->rotationOZ(diff_angle);
- ui->canvas->Repaint();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement