Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
JavaFX.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
4.88 Mб
Скачать

3.5 Лабораторна робота № 5. Робота з JavaFx Scene Builder. 3-d трансформація у JavaFx. Розгортання додатку.

Мета роботи: Отримати навички створення інтерфейсу користувачів за допомогою інструменту JavaFX Scene Builder. Ознайомитись з особливостями 3-D анімації в JavaFX, навчитися розгортати JavaFX додатки на сервері.

КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ

JavaFx Scene Builder

JavaFX Scene Builder являє собою засіб розробки інтерфейсів для платформи JavaFX. Це дозволяє простим перетягуванням компонентів на сцену та їх позиціонуванням створювати графічний інтерфейс користувача. При роботі з цим інструментом на виході розробники автоматично отримують FXML файл розробленого графічного інтерфейсу. JavaFX Scene Builder має простий та інтуїтивно зрозумілий інтерфейс, який може допомогти людям, які не мають навичок програмування, швидко створити прототип інтерактивного додатку, компоненти якого легко підключаються до логіки додатку.

Рис. 3.34. Інтерфейс JavaFX Scene Builder

В JavaFX Scene Builder деякі властивості елементів можна змінювати безпосередньо мишкою (перетягувати, міняти розмір тощо), іншу частину можна задати у вкладках Properties і Layout. Також для будь-якого компонента можна задати графічні ефекти типу відображення, тіні, розмиття та інше. Ще можна визначити CSS-стилі для компонентів. У вкладці Events для кожного компонента можна задати реакцію на події (клік, натискання клавіші). У режимі попереднього перегляду можна навіть взаємодіяти з макетом (наприклад вводити текст в RichEditor):

Трансформація у JavaFx

Трансформація (або перетворення) змінює місце графічного об'єкта в системі координат відповідно до визначених параметрів. В JavaFX підтримуються наступні види перетворень:

  • Translation (перетворення);

  • Rotation (обертання);

  • Scaling (масштабування);

  • Shearing (зсув).

Ці дії можуть бути застосовані до будь-якого окремого вузлу або групи вузлів. Можна об'єднувати перетворення і виконувати їх одночасно.

Усі перетворення знаходяться в пакеті javafx.scene.transform і підкласах класу Transform. Клас реалізує поняття афінних перетворень. Афінний клас розширює клас Transform і виступає в якості суперкласу для всіх перетворень. Афінні перетворення основані на евклідовій алгебрі, а також виконують лінійне відображення (за допомогою використання матриць) початкових координат в інші координати, зберігаючи прямолінійність і паралельність ліній. Афінні перетворення можуть бути побудовані з використанням observableArrayLists обертань, перетворень, масштабувань та зсувів.

Не рекомендується використовувати клас Affine напряму. Замість цього потрібно взаємодіяти через Translate, Scale, Rotate або Shear трансформації.

Перетворення в JavaFX може бути виконане за трьома координатами, що дозволяє користувачам створювати тривимірні (3-D) об'єкти і ефекти. JavaFX реалізовує Z-буферизацію для управління відображенням об'єктів «з глибини» в 3-D графіці. Z-буферизація забезпечує те, що перспектива у віртуальному світі буде така ж, як і в реальному: об'єкт на передньому плані загороджує відображення за ним. Z-буферизація може бути включена за допомогою setDepthTest класу.

Для спрощення використання перетворень JavaFX реалізує конструктори з двома параметрами (вісь x і вісь y) та з трьома (вісі х, у, z). Якщо потрібно створити двовимірний (2-D) ефект, то необхідно вказати тільки координати х і у. Якщо потрібен 3-D ефект, то вказуються всі три координати.

Для того, щоб побачити 3-D об'єкти та 3-D ефекти перетворень в JavaFX, потрібно включити підтримку перспективної камери.