КУРСОВОЙ ПРОЕКТ
на тему:
«Управление элементами поверхности»
Орел, 2010
Введение
Понятие «компьютерная графика» существует уже давно. Трудно определить, когда именно и кем были разработаны первые понятия компьютерной графики. В настоящее время компьютерная графика – это огромный мир, такой же, как мир операционных систем, или программирования, это нечто большее, чем просто графика. Вообще, все, что на компьютере рисует пользователь – это и есть компьютерная графика.
Компьютерная графика применяется в самых разнообразных сферах деятельности человека: в кино, в сфере рекламы, в полиграфии, в информационных сферах (телевидение, интернет), в сфере игростроения и многих других.
Исходя из этого, давайте подробно рассмотрим значимость компьютерной графики на сегодняшний день. Киноиндустрия получает ежегодную многомиллионную прибыль от фильмов, в которых использованы современные спецэффекты. Вспомнить хотя бы такие известные фантастические фильмы, как Люди в черном, Матрица и тому подобные. Во всех них использовалась компьютерная графика, создающая эффект максимальной реалистичности происходящего. Смотря на все происходящее в фильме, создается впечатление, что все это было на самом деле.
Компьютерная графика широко используется на телевидении. Все больше и больше последнее время компьютерная графика используется при создании красивых телевизионных заставок, которые вещают на телеканалах. Красивые заставки – это залог успеха телеканала. Последнее время проводятся даже соревнования между телеканалами, у кого лучше заставка. Компьютерная графика стала самым основный ресурсом, который затрачивается при создании компьютерных игр. Любая компьютерная графика представляется в играх в так называемом трехмерном виде, или 3d. Данным подразделением компьютерной графики занимаются специализированные графические редакторы, например Maya, 3d-Studio Max.
Целью данной курсовой работы является получение практических знаний по курсу компьютерная графика.
Задачами является изучение основных возможностей создания трехмерных объектов в OpenGL, наложения текстур.
1. Постановка задачиЦелью данной курсовой работы является получение практических знаний по курсу компьютерная графика. С помощью возможностей OpenGL будет создана модель управления элементами поверхности.
Задачами является изучение основных возможностей создания трехмерных объектов, наложения текстур, работа с координатами.
2. Описание алгоритма решения задачиДля упрощения описания работы программы, алгоритм выполнения
был разбит на части: подключение библиотек, создание поверхности ландшафта, изменение поверхности ландшафта, реализация ориентирования на поверхности.
2.1 Подключение библиотекСначала необходимо инициализировать библиотеки и установить
общие свойства сцены. Для этого создадим обработчик события onCreate формы и занесем в него следующий код:
InitOpenGL(Handle);
glViewport (0, 0, ClientWidth-Panel1. Width, ClientHeight);
glClearColor (0,0,0,0);
glEnable (GL_DEPTH_TEST);
glMatrixMode (GL_PROJECTION);
gluPerspective (30.0, ClientWidth / ClientHeight, 0.1, 1000.0);
glMatrixMode (GL_MODELVIEW);
glLoadIdentity;
Первый оператор инициализирует библиотеку OpenGL и устанавливает связь с окном приложения, в котором будет производиться вывод. После получения контекста воспроизведения сообщаем системе OpenGL о том, что необходимо корректировать построения в соответствии с глубиной командой glEnable (GL_DEPTH_TEST). Команда 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))*SPEE
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.