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

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

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

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

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

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

ОЦЕНКА

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

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

А.В. Аксенов

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

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

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

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

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

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

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

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

номер группы

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

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

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

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

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

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

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

3. Задание

Сценой является ель из предыдущей работы, декоративные элементы и полотно. Для создания декоративных элементов использовались узлы IndexedTriangleSet и Material, для создания сцены использовались узлы IndexedFaceSet, а полотно создавалось с помощью узла ElevationGrid. В каждом из узлов использовались координаты, по которым производилось построение объекта. Также, для создания полноты сцены был использован узел PointLight.

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>

<body style="color=:SkyBlue; background-color:#87CEEB">

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

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

<p> </p>

<p> </p>

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

<Scene>

<NavigationInfo headlight='false'></NavigationInfo>

<PointLight location="1 4 2.5" color="0.7 0.5 1" intensity="1" shadowIntensity="0.7" shadowMapSize="512"></PointLight>

<!-- ствол -->

<Transform translation='0 0.7 0'>

<Shape>

<Appearance>

<Material diffuseColor='tan'></Material>

</Appearance>

<Cylinder radius="0.3" height="1.5"></Cylinder>

</Shape>

</Transform>

<!-- ёлка -->

<Transform translation='0 2.5 0'>

<Shape>

<Appearance>

<Material diffuseColor='lightpink'></Material>

</Appearance>

<Cone height="2.5" bottomRadius="1.7" topRadius="0.7"></Cone>

</Shape>

</Transform>

<Transform translation='0 4 0'>

<Shape>

<Appearance>

<Material diffuseColor='lightpink'></Material>

</Appearance>

<Cone height="2.1" bottomRadius="1.7" topRadius="0.7"></Cone>

</Shape>

<Transform translation='0 1.5 0'>

<Shape>

<Appearance>

<Material diffuseColor='lightpink'></Material>

</Appearance>

<Cone height="2" bottomRadius="1.5"></Cone>

</Shape>

</Transform>

<!-- треугольники -->

<Viewpoint position='0 2 11'></Viewpoint>

<Shape>

<Appearance>

<Material></Material>

</Appearance>

<IndexedTriangleSet index='0 1 2 3 4 5 6 7 8' solid='false'>

<Coordinate point='-1 2 3, -2 1 1.5, -3 2 0.5,

-2 3 1.5, 0 4 0, 2 3 1.5,

5 5 -2.5, 4 3 1.5, 6 4 2'></Coordinate>

<Color color='0 .8 0, 0 1 2, 1 1 0, 1 .6 0, .8 0 1, 1 1 0, .6 .3 .1, 1 0 .5, 0 1 .5'></ColorRGBA>

</IndexedTriangleSet>

</Shape>

<Shape>

<Appearance>

<Material></Material>

</Appearance>

<IndexedTriangleSet index='0 1 2 3 4 5 6 7 8' solid='false'>

<Coordinate point='-4 2 3, -2 1 1.5, -3 1 0.5,

-2 6 1.5, 1 4 0, 3 4 1.5,

5 5 -2.5, 4 1.5, 6 5 2'></Coordinate>

<Color color='0 .8 0, 0 1 2, 1 1 0, 1 .6 0, .8 0 1, 1 1 0, .6 .3 .1, 1 0 .5, 0 1 .5'></ColorRGBA>

</IndexedTriangleSet>

</Shape>

<Transform translation='9 2 0'>

<Shape>

<Appearance>

<Material></Material>

</Appearance>

<IndexedTriangleSet index='0 1 2 3 4 5 6 7 8' solid='false'>

<Coordinate point='-3 6 1, -2 1 1.5, -3 1 0.5,

-2 6 1.5, 4 2 0, 3 4 1.5,

5 5 -2.5, 3 1.7, 8 4 2'></Coordinate>

<Color color='0 .8 0, 0 0 0, 1 1 0, 1 .6 0, .8 0 1, 1 1 0, .6 .3 .1, 1 0 .5, 0 1 .5'></ColorRGBA>

</IndexedTriangleSet>

</Shape>

</Transform>

<!-- поле -->

<Transform translation='-5 -4.2 -3'>

<Shape>

<ElevationGrid xDimension="10" zDimension="8" xSpacing="2.0" zSpacing="2.0" solid="false"

height=

"1.5, 1, 1.5, 0.5, 1, 1.5,0,

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

0.5, 0.25, 0.7, 0, 0.25, 0.5,0,

0.3, 0.25, 0, 0, 0.25, 1.5,0,

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

1.5, 1, 0.5, 0.5, 1, 1.5,0.7">

</ElevationGrid>

<Appearance>

<Material diffuseColor='green'></Material>

</Appearance>

</Shape>

<Transform translation="8 9 0" rotation='0 0 1 9.45'>

<Shape>

<Appearance>

<Material></Material>

</Appearance>

<IndexedFaceSet ccw="true" colorPerVertex="true" convex="true" solid="false"

coordIndex="0 4 7 3 -1 5 6 2 1 -1 4 5 6 7 -1 6 7 3 2 -1"

colorIndex="0 1 2 3 -1 4 5 6 0 -1 1 2 3 4 -1 5 6 0 1 -1">

<Coordinate point="-10 0 10, 10 0 10, 10 0 -10, -10 0 -10, -10 10 10, 10 10 10, 10 10 -10, -10 10 -10"></Coordinate>

<Color color="0.3 0 0.5, 0.1 0 0.4, 0 0 0, 0.2 0 1, 1 0 1, 1.5 0 0, 1 1 1"></Color>

</IndexedFaceSet>

</Shape>

</Transform>

</body>

</html>

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

Рисунок 2 – Ёлка и окружение

6. Вывод

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