- •Програмне забезпечення для моделювання тривимірної моделі товстостінних елементів конструкцій
- •1 Загальні відомості
- •2 Функціональне призначення
- •2.1 Інтерфейс користувача
- •2.2 Послідовність користування
- •3 Опис логічної структури
- •4 Використовувані технічні засоби
- •5 Виклик і завантаження
- •Висновки
2.1 Інтерфейс користувача
Графічний інтерфейс програми MyTransform представлений вікном та смужкою меню (рис 1.1).
Рисунок 1.1
В головному вікні знаходяться елементи графічного інтерфейсу з відповідними підписами, що відповідають за налаштування трансформації.
Вкладка меню «Файл» дозволяє вибрати шлях для відкриття та зберігання файлу (рис 1.2).
Рисунок 1.2
Кнопка «Начать» слугує для початку трансформації. Після кінця трансформації буде виведено відповідний напис та результати будуть автоматично збережені у файл data.transf. Після цього можна буде зберегти їх ще раз до іншого файлу.
Графічний інтерфейс програми Builder представлений головним вікном, в якому знаходиться панель інструментів, вікно графіки та смужка градієнту (рис 1.3).
Рисунок 1.3
У вікні графіки відбувається безпосередня побудова самої фігури. Смужка градієнту демонструє відповідність кольору конкретному числовому значенню. Панель інструментів реалізує повний функціонал програми, доступний користувачу (рис 1.4).
Рисунок 1.4
Зліва направо на панелі розташовані наступні кнопки: завантажити файл, завантажити з файлу-буферу, кнопки обертання навколо осей, кнопки проекцій, кнопки зменшення-збільшення, кнопка для збереження фотографії фігури, кнопка відображення фігури, кнопка відображення сітки, кнопка відображення осей координат, кнопка виклику відомостей про автора, кнопка видалення даної графіки, кнопка виходу.
2.2 Послідовність користування
Побудова тривимірної моделі «з нуля» складається з 3 етапів. Користування програмою можна починати з будь-якого(залежно від даних, що ми маємо). Розглянемо ці етапи.
Divider2_6c. Будуємо фігури, та зберігаємо сітку розбиття.
MyTransform. Завантажуємо сітку розбиття(Файл->Открыть), вибираємо налаштування трансформації, проводимо саму трансформацію. Отримана фігура автоматично зберігається у файл-буфер. Якщо ми плануємо використовувати цю фігуру ще раз, то необхідно її зберегти під іншою назвою, бо інакше вона буде видалена під час перезапису файлу-буферу наступного разу.
Builder. Якщо ми збираємось побудувати фігуру, що знаходиться у файлі-буфері, натискаємо кнопку «завантажити з файлу-буферу». Якщо ми збираємось відкрити інший файл, натискаємо кнопку «завантажити файл» і вибираємо потрібний нам файл.
3 Опис логічної структури
Програми MyTransform, Builder використовують наступні методи й алгоритми:
розбиття трикутника на чотирикутники;
витягування двомірної фігури у тривимірну;
центрування фігури відносно початку системи координат;
сортування координат;
віддзеркалення фігури;
методи графічної бібліотеки Qt (OpenGl) для зображення тривимірних об`єктів та побудови графічних інтерфейсів;
методи для переміщення тривимірної фігури в просторі;
методи для отримання сигналів від клавіатури та мишки.
До програми MyTransform були додані наступні методи: turn, Sort_Koor, makeCentral. Розглянемо докладніше ці методи.
МЕТОД turn використовується для відображення фігури. Вважається, що фігура знаходиться у першій чверті декартової системи координат. У якості аргументу до програми подається кут, на який ми маємо відобразити фігуру. Кут має бути кратним 90. Далі в цьому методі викликається метод fullReflect, котрий у якості аргументу отримує номер чверті у яку потрібно відобразити фігуру, та відображає її шляхом додавання координат, помноженних на (-1).
МЕТОД Sort_Koor сортирує координати. В якості аргументу він приймає номер координати, за якою буде проводитись сортування матриці координат. 0 відповідає X, 1 – Y. Сортування за координатою Z не відбувається, так як не має сенсу. В цьому методі викликається метод shaker, що проводить саму шейкер-сортировку. Для надання пріоритету координаті, за якою відбувається сортування множимо її на велике число, до якого додаємо значення другої координати.
МЕТОД makeCentral приймає у якості аргументу координату, за якою буде відцентрована фігура. В цьому методі знаходиться центр фігури за цією координатою та переміщується у початок координат.
Програма Builder має такі основні методи:
МЕТОДИ initializaGL, resizeGL, paintGL є стандартними та відповідають за ініціалізацію графіки, її перебудову при змінені розмірів вікна та перемальовування сцени.
МЕТОДИ drawAxis, drawFigure, drawGrid використовуються у методі paintGL та відповідають за візуалізацію основних елементів сцени: вісі координат, фігури та сітки розбиття. Методи drawFigure та drawGrid базуються на аналогічних методах drawElement та drawGridElement, які будують за вісьмома вершинами повнотілий елемент, або лише його грані.
МЕТОД setColor використовується у методі drawElement для завдання вузлу кольору пропорціонального значенню цього вузла. У методі setColorStep ми знаходимо весь інтервал числових значень вузлів та ділимо його на 1024(кількість відтінків) та отримуємо числове значення, що відповідає одному відтінку кольору. Використовуючи це значення у методі setColor ми вирішуємо, який колір надати цьому вузлу.
МЕТОДИ readFile та createArea використовуються для зчитування файлу та побудування масивів відповідних розмірів.
МЕТОДИ wheelEvent та mouseMoveEvent використовуються для перехоплення подій мишки та слугують для пов`язання мишки із графікою.
МЕТОДИ zoom, rotate_x, rotate_y, rotate_z, move_x, move_y, see_x, see_y, getProection використовуються для поворотів, переміщення фігури, виведення її проекцій.
МЕТОДИ головного вікна OpenFile, SnapShot, createGLWidget, delGL слугують для відкриття файлу, збереження зображення фігури у файл, створення та видалення графіки фігури.
