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

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

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

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

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

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

ОЦЕНКА

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

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

А.В. Аксенов

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

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

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

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

СЛОЖНЫЕ ГЕОМЕТРИЧЕСКИЕ ОБЪЕКТЫ

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

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

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

номер группы

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

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

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

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

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

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

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

3. Задание

Сценой является волшебник из предыдущей работы (для полноты сюжета), планета, звёзды и полотно. Для создания планеты использовался узелы Transform, Material, для создания звезд использовались узлы PointSet, а полотно создавалось с помощью узла ElevationGrid. В каждом из узлов использовались координаты, по которым производилось построение объекта.

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

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>Лабораторная работа 2</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>Лабораторная работа №2</h1>

<p>Сложные геометрические объекты</p>

<p> </p>

<p> </p>

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

<Scene>

<!-- поле -->

<Transform translation="-15 -4.1 -10">

<Shape>

<Appearance>

<Material diffuseColor='pink'></Material>

</Appearance>

<ElevationGrid xDimension="7" zDimension="6"

height="1.7, 14, 4.5, 0.5, 8, 5.9, -5,

1, 0.5, 0.25, 0.25, 0.5, 1, 0,

0.5, 0.25, 1.75, 3, 0.25, 0.5, -4,

0.5, 0.8, 0, 0, 0.25, 0.5, -2,

1, 0.5, 7.25, 2.25, 0.5, 1, 3,

1.5, 1, 0.5, 3.5, 1, 1.5, -4"

xSpacing="5.0" zSpacing="5.0" solid="false">

</ElevationGrid>

</Shape>

</Transform>

<!-- звезды -->

<group def="Gr4">

<transform translation='0 0 0' scale="25 25 25 ">

<shape def="four_box">

<pointset>

<coordinate point=' 0 0 0

0.1 0.1 -0.1

0.3 0.3 0.3 0.3

0.33 -0.5 0.2

0.3 0.1 -0.2

2 0.3 0.4

-0.5 1 0.7

0.6 0.2 0.5

0.8 0.6 2

-0.6 0.9 0.5

0.8 -0.6 0.2

0.6 -0.9 0.5

-0.5 0.6 0.2

0.6 0.8 -0.5

-0.2 0.6 0.5

0.2 -0.3 0.6

-1 -0.7 -0.3' />

<color color='1 0 1 0 0 1 0 0 1 1 0 1 1 1 1 0 1 0' />

</pointset>

</shape>

</transform>

<transform translation='-100 -100 -100' scale="25 25 25 ">

<shape use="four_box">

</shape>

</transform>

</group>

<!-- планета -->

<Transform translation='-25 15 0' rotation='0 0 0'>

<Shape>

<Appearance>

<Material diffuseColor='black'></Material>

</Appearance>

<Sphere radius="17"></Sphere>

</Shape>

</Transform>

<Transform translation='-25 15 0' rotation='1 1 0 20'>

<Shape>

<Torus innerRadius="1.5" outerRadius="17.0"></Torus>

<Appearance>

<Material diffuseColor="12 .1 .4"></Material>

</Appearance>

</Shape>

</Transform>

<Transform translation='-25 15 0' rotation='1 1 0 20'>

<Shape>

<Torus innerRadius="0.3" outerRadius="25.0"></Torus>

<Appearance>

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

</Appearance>

</Shape>

</Transform>

<!-- Тело волшебика -->

<Transform translation='0 0 0'>

<Shape>

<Appearance>

<imageTexture url="danny_de_vito5.jpg"></imageTexture>

</Appearance>

<Cone size='1 2 3'></Cone>

</Shape>

</Transform>

<!-- Голова волшебика -->

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

<Shape>

<Appearance>

<Material diffuseColor='pink'></Material>

</Appearance>

<Sphere radius="0.5"></Sphere>

</Shape>

</Transform>

<!-- Ноги волшебника -->

<Transform translation='0.25 -1.1 0' rotation='0 0 0'>

<Shape>

<Appearance>

<Material diffuseColor='pink'></Material>

</Appearance>

<Box size='0.3 0.5 0.3'>

</Shape>

<Transform translation='-0.5 0 0' rotation='0 0 0'>

<Shape>

<Appearance>

<Material diffuseColor='pink'></Material>

</Appearance>

<Box size='0.3 0.5 0.3'>

</Shape>

</Transform>

<!-- Колпак -->

<Transform translation='-0.25 3.1 -0.5' rotation='1 0 0 -0.5'>

<Shape>

<Appearance>

<Material diffuseColor='blue'></Material>

</Appearance>

<Snout dbottom="0.83" dtop="0" height="1.8" xoff="0" yoff="0"></Snout>

</Shape>

</Transform>

<!-- Глаза -->

<Transform def='lefteye' translation='0 2.1 0.45' scale='0.075 0.075 0.075'>

<Shape def='eye'>

<Appearance>

<Material diffusecolor='black'></Material>

</Appearance>

<Sphere radius='1'></Sphere>

</Shape>

</Transform>

<Transform def='righteye' translation='-0.5 2.1 0.45' scale='0.075 0.075 0.075'>

<Shape use='eye'></Shape>

</Transform>

<!-- Руки -->

<Transform def='lefthand' translation='0.4 1 0' rotation='0 0 1 1'>

<Shape def='hand'>

<Appearance>

<Material diffusecolor='pink'></Material>

</Appearance>

<Cylinder radius='0.1' height='1'></Cylinder>

</Shape>

</Transform>

<Transform def='righthand' translation='-0.9 1 0' rotation='0 0 1 -1'>

<Shape use='hand'></Shape>

</Transform>

<!-- Нос -->

<Transform translation='-0.25 2 0.5'>

<Shape>

<Torus innerRadius="0.07" outerRadius="0.05"></Torus>

<Appearance>

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

</Appearance>

</Shape>

</Tranform>

<!-- Брови -->

<Transform translation='-0.2 0.3 -0.05' rotation='0 0 1 2.7'>

<Shape>

<Appearance>

<Material diffuseColor='black'></Material>

</Appearance>

<Box size='0.25 0.05 0.05'>

</Shape>

</Transform>

<Transform translation='0.2 0.3 -0.05' rotation='0 0 1 -2.7'>

<Shape>

<Appearance>

<Material diffuseColor='black'></Material>

</Appearance>

<Box size='0.25 0.05 0.05'>

</Shape>

</Transform>

</body>

</html>

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

Рисунок 2 – Планета, полотно и звёзды

6. Вывод

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