ЗАДАНИЕ VIII
Тема: Трехмерная графика. Цель: Краткое знакомство с трехмерной графикой в среде Stratum Computer. |
Перед началом работы необходимо:
владеть работой с клавиатурой и мышкой; | |
владеть основными приемами работы в системе Stratum. |
Основные понятия Трехмерные объекты существуют в рамках трехмерного пространства и могут быть визуализированы в специальном двухмерном объекте: проекции трехмерного пространства. Трехмерное пространство находится в двухмерном пространстве (записывается вместе с ним в файл). Визуализация трехмерных объектов осуществляется в проекции трехмерного пространства, большинство из параметров которой определяются выбранной в проекции камерой. Камера - это специальный графический объект, определяющий направление взгляда и координаты наблюдателя, а также и другие параметры, влияющие на отображение. Конструирование трехмерных объектов можно производить в программном продукте 3d Studio и импортировать их в Stratum. Простейшие трехмерные объекты можно создавать с Stratume, для этого следует в режиме редактирования трехмерного пространства нажать на кнопку с изображением соответствующего примитива. Операции с
графическими 3D объектами.
Они во многом схожи и имеют одинаковые переменные HANDLE hSpace3d,hBase,hObject STRING ObjName,BaseName
Кроме этого имиджи имеют еще и специальные переменные.
|
Задание 1.
Создайте новый проект, вставьте
имидж GraphicSpace. Поскольку содержимое окна будет считываться
из файла 3d.vdr (который Вы можете получить здесь, и
полученный файл следует сохранить в директории проекта), установим переменную
FileName в 3d.vdr (либо полный путь к файлу). Установим
на схеме имидж Proection3D. Имидж Proection3D
может создавать новую проекцию трехмерного пространства, но может и использовать
уже заранее созданную и нарисованную. Для этого нужно в его переменной ObjectName
установить имя уже существующей проекции. У нас это 3d. Запустите
проект на выполнение и проверьте, что номер трехмерного пространства не равен
0 ( переменная hSpace3d у имиджа Proection3D
). Для того, чтобы вид трехмерного пространства полностью располагался в окне
установите переменную Control (у имиджа Proection3D
) равной 6. Запустите проект на выполнение.
Теперь будем перемещать
тор (трехмерный объект TORE01) вдоль цилиндра
(по оси OY). Для этого установим имидж Move3d.
Соединим связью переменные hSpace3d этого
имиджа и имиджа Proection3D. Зададим имя
перемещаемого объекта (переменная ObjName)
- TORE01, и объекта в системе координат которого
осуществляется перемещение (переменная BaseName)
- CYLINDER. При задании имен,
большие и маленькие буквы различаются.
Создайте новый имидж, текст которого будет
задавать закон перемещения объекта:
t:=t+0.1
y:=y0+r*sin(t+f)
где y0 - начальное положение, r -
амплитуда, f - фаза, t - время.
Соединим переменные y нового имиджа и Move3d.
Задайте начальные значения переменных (y0,
r, f). Например (5, 4, 0). Запустите
проект на выполнение, красный тор должен
выполнять поступательные движения вдоль оси OY
цилиндра. Аналогично установим перемещения для
красного и синего торов. Вместо создания новых
имиджей следует вставлять созданный вами имидж,
либо использовать копирование. Также задайте
начальные значения переменных (y0, r,
f).
Задание 2.
Вращение шарика вокруг тора. Для этого установим имидж Move3d. Соединим связью переменные hSpace3d этого имиджа и имиджа Proection3D. Зададим имя перемещаемого объекта (переменная ObjName) - SPHERE, и объекта в системе координат которого осуществляется перемещение (переменная BaseName) - CYLINDER. Создайте новый имидж, текст которого будет задавать закон перемещения шарика:
Вращение по малому радиусу:
a1:=a1+0.2
y:=0.16*r1*sin(~a1)
_x:=r1*cos(~a1)
Вращение по большому радиусу
a:=a+0.02
z:=(r+~_x)*sin(a)
x:=(r+~_x)*cos(a).
Задайте начальные значения переменных : r1- 15, r - 40. Соединим переменные x,y,z нового имиджа и Move3d.
Попробуйте управлять с помощью имиджей VSlider и HSlider любыми трехмерными графическими объектами. | |
Изменение цвета трехмерных объектов. Воспользуемся имиджем ObjectColor3d. Во внешнем имидже изменяйте цвет по произвольному закону. |