Интерактивная компьютерная графика (икг) лабы / Лаба 2 — копия
.docxМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ КАФЕДРА 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-сцен.