С версии Delphi XE2, помимо простых приложений VCL Application нам стали доступны следующие виды приложений:
- FireMonkey HD Application - 2D-приложение
- FireMonkey 3D Application - приложение с 3D-графикой
- FireMonkey Mobile Application - 2D-приложение приложение для iOS/Android/Mac
FireMonkey (FMX) — GUI-библиотека, использующая возможности графического процессора. Является кроссплатформенной: поддерживаются Windows, Mac OS, Apple iOS и Android. Используя возможности Pixel Shader 2.0 FireMonkey позволяет обогащать графический интерфейс программ широким набором визуальных эффектов. Даёт возможность строить пользовательские масштабируемые векторные и 3D-интерфейсы. Имеются встроенные разнообразные методы анимирования компонентов, работа с векторной графикой. FireMonkey 3D - приложение для настольных и мобильных операционных систем, создаваемое: "File -> New -> FireMonkey 3D Application" и при малых знаниях 2D и 3D графики позволяющее разработать как простые, так и профессиональные приложения, игры и прочее.
Пример 1. Вращающаяся планета «Земля». Для того, чтобы cсоздать подобное 3D приложение не понадобится знаний о DirectX или OpenGL. Все что нам нужно это правильно разместить компоненты, настроить свойства и написать пару строк кода для вращения планеты. Создадим новый проект, сохраним его в новой папке и в палитре компонентов выберем закладку «3D Shapes», а так как земля имеет овальную форму то выберем компонент TSphere и разместим его на форме.
Теперь изменим его размеры изменив значения свойств: Depth на 10, Width на 10, Height на 10, а так же SubdivisionsAxes и SubdivisionsHeight на 50.
После того, как форма сферы готова, из нее можно делать модель планеты «Земля». Чтобы сделать модель планеты нам понадобится текстура в виде отдельного изображения (ее можно найти в Internet).
Для выбора текстуры используем компонент TextureMaterialsSource из закладки Materials. Изменим текстуру, выбрав в открывшемся окне сохраненное изображение после нажатия кнопки Load в Bitmap Editor свойства Texture строки Edit.
Для применения текстуры к модели измените свойство Material Source компонента Sphere1 на TextureMaterialSource1.
Для того, чтобы правильно написать программу ответьте на следующие вопросы
- Какое событие Form1 нужно выбрать для управления клавишами с клавиатуры для перемещения объекта?
Ответ: событие - OnKeyDown
- Перечислите подписи осей координат объемной фигуры в пространстве?
Ответ: x,y,z
- Какие коды клавиш вы знаете?
Ответ: vk_right=39, vk_left=37, vk_up=38, vk_down=40
Сформулируйте текст программы, основанный на разветвляющемся алгоритме проверки нажатой клавиши и в зависимости от выбора изменения координаты модели в трехмерном пространстве? Пример. Откройте событие OnKeyDown и напишите следующий код
if key=38 then sphere1.Position.Z:=sphere1.Position.Z+10;
if key=40 then sphere1.Position.Z:=sphere1.Position.Z-10;
if key=37 then sphere1.RotationAngle.y:=sphere1.RotationAngle.y+10;
if key=39 then sphere1.RotationAngle.y:=sphere1.RotationAngle.y-10;
Сохраните проект. Скомпилируйте приложение. Откройте программу. Управляйте клавишами.
Вопросы для закрепления
- Что такое Canvas? Перечислите основные методы Canvas?
- Что такое Firemonkey? Перечислите основные свойства Canvas?
- Какие возможности предоставляет библиотека Firemonkey? С какой версии Delphi?
- Перечислите свойства трехмерной фигуры, сцены (освещение, камера)?
- Вопросы по работе приложения