«Инструментальные средства разработки игровых приложений» Образовательные программы


Методические рекомендации к практическому заданию по теме



бет3/3
Дата04.09.2022
өлшемі92 Kb.
#39146
1   2   3
ПЗ 8 ИСРИП

Методические рекомендации к практическому заданию по теме:
Объемные фигуры

Цель: Изучение объемных фигур и принципов программирования с ними в среде разработки Processing


Задачи:
1) Подключить режим 3D в программе.


2) Нарисовать объемные фигуры.
3) Переместить объемные фигуры.
4) Создать текущую матрицу преобразования для каждой объемной фигуры.
5) Задать вращение объемных фигур.
6) Загрузить программу Проверить работу приложения.

Описание:


1) Любой объем подразумевает три координаты: ширину, высоту и глубину. Но на сегодняшний день экраны плоские и обладают только шириной и высотой. Создавая для них объемные фигуры всегда подразумевают виртуальный объем.
В любом случае в начале в размерах экрана необходимо задать размеры уже не в двух, а в трех размерностях:
void setup(){
size(displayWidth, displayHeight, P3D)
}
2) В Processing существуют две базовые объемные фигуры: параллелепипед и шар. В их параметрах необходимо задать размеры. Для шара – один (радиус), для параллелепипеда – один (для куба) или три (для неровного параллелепипеда).
void draw() {
box(50);
box(20, 30, 50);
sphere(20);
}
3) В результате все фигуры будут нарисованы в левом верхнем углу экрана, т.к. месторасположение, в отличие от плоских фигур, для них не задаются. А начало координат находится в Processing именно там. Поэтому необходим дополнительный инструмент для переноса уже не объекта, а начала координат в другое место экрана. Добавим такой инструмент:
void draw() {
translate(Width/2, Height/2);
box(50);
translate(0,50,10);
box(20, 30, 50);
translate(-Width/2, -Height/2, -10);
sphere(20);
}
Необходимо заметить, что, во-первых, все последующие translate суммируются с предыдущими (поэтому для переноса назад нужно использовать отрицательные параметры), во-вторых, можно переносить как по двум, так и по трем координатам.
Кроме этого команды переноса будут работать и для ранее пройденных плоских фигур, если они будут прописаны после них.
4) Для того, чтобы команда переноса работала не для всех объектов, а только для конкретных, можно создать текущую матрицу преобразования. Создадим их для каждой фигуры и скорректируем координаты для переноса:
void draw() {
pushMatrix();
translate(Width/2, Height/2);
box(50);
popMatrix();
pushMatrix();
translate(20,50,10);
box(20, 30, 50);
popMatrix();
pushMatrix();
translate(20,100);
sphere(20);
popMatrix();
}
Команды для создания текущей матрицы преобразования всегда пишутся парно: pushMatrix – в начале, popMatrix – в конце подблока.
5) Чтобы четче увидеть объемность куба его необходимо немного развернуть. Для этого можно использовать команды вращения вокруг осей:
void draw() {
pushMatrix();
translate(Width/2, Height/2);
rotateX(gradians(90));
box(50);
popMatrix();
pushMatrix();
translate(20,50,10);
rotateY(gradians(frameCount));
box(20, 30, 50);
popMatrix();
pushMatrix();
rotateZ(gradians(frameCount));
translate(20,100);
sphere(20);
popMatrix();
}
Обратите внимание на разницу работы при разном порядке написания translate и rotate.
Более подробно о командах и переменных можно прочитать в теме 5.
6) Запустите программу на компьютере. Проверьте правильность работы. Сохраните программу. Загрузите программу на смартфон, так же как в методических рекомендациях к практическому заданию по теме 1.




Достарыңызбен бөлісу:
1   2   3




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау