Управление элементами поверхности - Курсовая работа

бесплатно 0
4.5 64
Изучение основных возможностей создания трехмерных объектов в программе OpenGL, методика наложения текстур. Механизм подключения библиотек. Создание поверхности ландшафта. Реализация ориентирования на поверхности. Изменение поверхности ландшафта.


Аннотация к работе
Понятие «компьютерная графика» существует уже давно. Задачами является изучение основных возможностей создания трехмерных объектов в OpenGL, наложения текстур. 1. Команда glClearColor определяет величину, которой будет заполняться буфер цвета при его очистке, т.е. это будет цвет фона - черный. 2.2 Создание поверхности ландшафта Для того чтобы создать ландшафт, было принято решение использовать массив, в котором будет храниться высота координат: Var … height:array [-11..11, -11..11] of single; … При создании формы происходит вызов процедуры initmas, которая инициализирует массив высот: … procedure initmas; var i, j:integer; begin for i:= -11 to 11 do for j:=-11 to 11 do begin height [i, j]:=-1; end; end; … Рисование поверхности производится вызовом процедуры Draw в обработчике события OnPaint: procedure Draw; … for i:=-10 to 10 do for j:=-10 to 10 do begin x:=i*zoom; z:=j*zoom; glBindTexture (GL_TEXTURE_2D, MyTextureTex); glBegin (GL_QUADS); glTexCoord2f (0.0, 0.0); glVertex3f (x, height [i, j], z); glTexCoord2f (1.0, 0.0); glVertex3f (x, height [i, j 1], z zoom); glTexCoord2f (1.0, 1.0); glVertex3f (x Zoom, height [i 1, j 1], z zoom); glTexCoord2f (0.0, 1.0); glVertex3f (x Zoom, height [i 1, j], z); glEnd; end; end; В этой процедуре по каждому значению массива height строится ландшафт. 2.3 Реализация ориентирования на поверхности Для того чтобы наглядно продемонстрировать ландшафт, было принято решение дать наблюдателю возможность перемещаться по поверхности. Для того, чтобы это реализовать в обработчик события OnFormKeyDown формы занесем следующий код: case key of 27: Form1. Close; 65: begin Human. Position.z:=Human. Position.z sin (DegToRad(Human. Rotation.y))*SPEED; Human. Position.x:=Human. Position.x cos (DegToRad(Human. Rotation.y))*SPEED; end; 87: begin Human. Position.z:=Human. Position.z cos (DegToRad(Human. Rotation.y))*SPEED; Human. Position.x:=Human. Position.x- sin (DegToRad(Human. Rotation.y))*SPEED; end; 68: begin Human. Position.z:=Human. Position.z- sin (DegToRad(Human. Rotation.y))*SPEED; Human. Position.x:=Human. Position.x- cos (DegToRad(Human. Rotation.y))*SPEED; end; 83: begin Human. Position.z:=Human. Position.z- cos (DegToRad(Human. Rotation.y))*SPEED; Human. Position.x:=Human. Position.x sin (DegToRad(Human. Rotation.y))*SPEED; end; end; При нажатии клавиши изменяется позиция наблюдателя в пространстве. 2.4 Изменение поверхности ландшафта Чтобы изменить поверхность мы сначала должны получить координаты изменяемой поверхности.
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?