Advertisement
BagaevDanil

Untitled

Oct 15th, 2023
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.80 KB | None | 0 0
  1. #include "MainWindow.h"
  2. #include "ui_MainWindow.h"
  3. #include <QDebug>
  4. #include "matrix.h"
  5. #include "convert.h"
  6. #include "array.h"
  7.  
  8. MainWindow::MainWindow(QWidget *parent)
  9. : QMainWindow(parent)
  10. , ui(new Ui::MainWindow)
  11. {
  12. ui->setupUi(this);
  13.  
  14. std::vector<Edge<Point>> edges {
  15. Edge<Point>({150, 150, 50}, {150, 50, 50}),
  16. Edge<Point>({50, 150, 50}, {150, 150, 50}),
  17. Edge<Point>({150, 150, 50}, {150, 150, 150}),
  18.  
  19. Edge<Point>({50, 50, 50}, {150, 50, 50}),
  20. Edge<Point>({50, 50, 50}, {50, 150, 50}),
  21. Edge<Point>({50, 50, 50}, {50, 50, 150}),
  22.  
  23. Edge<Point>({50, 150, 150}, {50, 150, 50}),
  24. Edge<Point>({50, 150, 150}, {50, 50, 150}),
  25. Edge<Point>({50, 150, 150}, {150, 150, 150}),
  26.  
  27. Edge<Point>({150, 50, 150}, {50, 50, 150}),
  28. Edge<Point>({150, 50, 150}, {150, 150, 150}),
  29. Edge<Point>({150, 50, 150}, {150, 50, 50}),
  30. };
  31.  
  32. figure_ = new Figure(edges, Point(100, 100, 100));
  33. line_x = new Figure(std::vector<Edge<Point>>{Edge<Point>({200, 200, 200}, {400, 200, 200})}, Point(200, 200, 200));
  34. line_y = new Figure(std::vector<Edge<Point>>{Edge<Point>({200, 200, 200}, {200, 400, 200})}, Point(200, 200, 200));
  35. line_z = new Figure(std::vector<Edge<Point>>{Edge<Point>({200, 200, 200}, {200, 200, 400})}, Point(200, 200, 200));
  36. line_x->rotationOY(30);
  37. line_y->rotationOY(30);
  38. line_z->rotationOY(30);
  39. figure_->rotationOY(30);
  40.  
  41. line_x->rotationOX(-30);
  42. line_y->rotationOX(-30);
  43. line_z->rotationOX(-30);
  44. figure_->rotationOX(-30);
  45.  
  46. line_x->rotationOZ(180);
  47. line_y->rotationOZ(180);
  48. line_z->rotationOZ(180);
  49. figure_->rotationOZ(180);
  50.  
  51. ui->canvas->DrawItem(line_x);
  52. ui->canvas->DrawItem(line_y);
  53. ui->canvas->DrawItem(line_z);
  54. ui->canvas->DrawItem(figure_);
  55.  
  56. prev_angle_x_ = prev_angle_y_ = prev_angle_z_ = 0;
  57. ui->scrollBarOX->setRange(0, 360);
  58. ui->scrollBarOX->setValue(prev_angle_x_);
  59.  
  60. ui->scrollBarOY->setRange(0, 360);
  61. ui->scrollBarOY->setValue(prev_angle_y_);
  62.  
  63. ui->scrollBarOZ->setRange(0, 360);
  64. ui->scrollBarOZ->setValue(prev_angle_z_);
  65. }
  66.  
  67. MainWindow::~MainWindow()
  68. {
  69. delete ui;
  70. }
  71.  
  72. void MainWindow::on_scrollBarOX_valueChanged(int value)
  73. {
  74. int diff_angle = value - prev_angle_x_;
  75. prev_angle_x_ = value;
  76. figure_->rotationOX(diff_angle);
  77. ui->canvas->Repaint();
  78. }
  79.  
  80.  
  81. void MainWindow::on_scrollBarOY_valueChanged(int value)
  82. {
  83. int diff_angle = value - prev_angle_y_;
  84. prev_angle_y_ = value;
  85. figure_->rotationOY(diff_angle);
  86. ui->canvas->Repaint();
  87. }
  88.  
  89. void MainWindow::on_scrollBarOZ_valueChanged(int value)
  90. {
  91. int diff_angle = value - prev_angle_z_;
  92. prev_angle_z_ = value;
  93. figure_->rotationOZ(diff_angle);
  94. ui->canvas->Repaint();
  95. }
  96.  
  97.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement