Скачиваний:
3
Добавлен:
18.01.2022
Размер:
175.89 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

КАФЕДРА 44 (Кафедра вычислительных систем и сетей)

ОЦЕНКА

ПРЕПОДАВАТЕЛЬ

Старший преподаватель

А.В. Аксенов

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ЛАБОРАТОРНАЯ РАБОТА №4

ЛИНЕЙНАЯ АНИМАЦИЯ

по дисциплине: Интерактивная компьютерная графика

РАБОТУ ВЫПОЛНИЛА

СТУДЕНТКА ГР. №

номер группы

подпись, дата

инициалы, фамилия

Санкт-Петербург 2021

1. Цель работы

Ознакомление с принципами и приобретение навыков создания анимации с использованием таймеров и интерполяторов значений различных типов для создания динамических X3D-сцен.

2. Постановка задачи

Разработать сюжет 3D-сцены. Пользуясь геометрическими узлами, реализовать сцену в виде HTML-страницы с внедренным X3D-кодом. Задать для объектов сцены свойства материала и текстур. Задать необходимое число таймеров и маршрутами привязать к анимируемым свойствам объектов интерполяторы значений соответствующего типа.

3. Задание

Сценой является две абстрации, находящиеся в свободном пространстве. С помощью узлов TimeSensor и OrientationInterpolator задана анимация вращения двух узлов Torus, создающая иллюзию шашечного рисунка, также добавлено вращение центрального куба.

5. Выполнения работы

Код 3D сцены:

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>Лабораторная работа 4</title>

<link rel="stylesheet" href="https://www.x3dom.org/download/1.8.1/x3dom.css">

<script src="https://www.x3dom.org/download/1.7/x3dom-full.js"></script>

</head>

<body>

<h1>Лабораторная работа №4</h1>

<p>Линейная анимация</p>

<p> </p>

<p> </p>

<X3D id="x3d" xmlns="https://www.x3dom.org/x3dom">

<Scene>

<TimeSensor DEF='Time' cycleInterval='6' loop='true'></TimeSensor>

<TimeSensor DEF='Time1' cycleInterval='6' loop='true'></TimeSensor>

<OrientationInterpolator DEF='OrientInt' key='0 0.5 1' keyValue='0 0 1 0 0 0 1 -3.14 0 0 1 -6.28'></OrientationInterpolator>

<OrientationInterpolator DEF='OrientInt1' key='0 0.5 1' keyValue='0 0 1 0 0 0 1 -3.14 0 0 1 -6.28'></OrientationInterpolator>

<---!box>

<Transform DEF='box1'>

<Transform translation='0 0 0' rotation='1 0 1 14'>

<Shape>

<Appearance>

<Material></Material>

</Appearance>

<Box size="1 1 1">

</Box>

</Shape>

</Transform>

<---!бублик 1>

<Transform DEF='bubl1'>

<Transform DEF='bubl1' translation='0 0 0' rotation='1 1 0 1.5'>

<Shape>

<Appearance>

<Material diffuseColor="1 .3 .3"></Material>

</Appearance>

<Torus innerRadius="0.1" outerRadius="2"></Torus>

</Shape>

</Transform>

</Transform>

<---!бублик 2>

<Transform DEF='bubl2'>

<Transform DEF='bubl2' translation='0 0 0' rotation='0 0 0'>

<Shape>

<Appearance>

<Material diffuseColor="0 .3 .3"></Material>

</Appearance>

<Torus innerRadius="0.1" outerRadius="2"></Torus>

</Shape>

</Transform>

</Transform>

<--анимация>

<ROUTE fromNode='Time' fromField='fraction_changed'

toNode='OrientInt' toField='set_fraction'>

</ROUTE>

<ROUTE fromNode='OrientInt' fromField='value_changed'

toNode='bubl1' toField='set_rotation'>

</ROUTE>

<ROUTE fromNode='Time1' fromField='value_changed'

toNode='box1' toField='set_rotation'>

</ROUTE>

</Scene>

</X3D>

</body>

</html>

Рисунок 2 – Общий план выполнения кода

Рисунок 3 – Вращение колец

Рисунок 4 – начальное состояние анимации

6. Вывод

В ходе лабораторной работы ознакомился с принципами и приобрел навыки создания анимации с использованием таймеров и интерполяторов значений различных типов для создания динамических X3D-сцен.