close

Вход

Забыли?

вход по аккаунту

?

Никулин Е.И. НИРС - Оптимизация компьютерной графики

код для вставкиСкачать
ГОСУДАРСТВЕННОЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ТУЛЬСКОЙ ОБЛАСТИ «ТУЛЬСКИЙ ЭКОНОМИЧЕСКИЙ КОЛЛЕДЖ»
НАУЧНО-ИССЛЕДОВАТЕЛЬНАЯ РАБОТА
НА ТЕМУ
«ОПТИМИЗАЦИЯ КОМПЬЮТЕРНОЙ ГРАФИКИ В РАЗЛИЧНЫХ СРЕДАХ
ПРОГРАММИРОВАНИЯ»
ВЫПОЛНИЛ:
студент 3 курса группы 313-С
специальности 09.02.04
Информационные системы
Никулин Егор Игоревич
НАУЧНЫЙ РУКОВОДИТЕЛЬ:
преподаватель
Завьялова Светлана Викторовна
Щекино, 2016
СОДЕРЖАНИЕ
ВВЕДЕНИЕ ......................................................................................................................................
3
ГЛАВА 1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ .........................................................................................
4
1.1. Графические возможности языков программирования ........................................................
4
1.2. Фрактальная графика ...............................................................................................................
4
ГЛАВА 2. ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ ............................................................................
5
2.1. Программная реализация ........................................................................................................
5
2.2. Расчет функциональной зависимости ....................................................................................
5
ЗАКЛЮЧЕНИЕ ...............................................................................................................................
8
СПИСОК ЛИТЕРАТУРЫ ...............................................................................................................
8
ПРИЛОЖЕНИЯ …………………………………………………………………………………...
9
2
ВВЕДЕНИЕ
С развитием информационных технологий персональный компьютер крепко встроился в
нашу повседневную
жизнь.
С
помощью
персональных
компьютеров
человек
смог
визуализировать разнообразные процессы и явления, о которых ранее не было ничего не
известно. Компьютерная графика позволяет человеку исследовать ранее неизвестный ему мир,
например, фракталы.
Фрактальная графика является на сегодняшний день одним из самых быстро
развивающихся
и
перспективных
видов
компьютерной
графики.
Основой
создания
фрактальной графики является математическая модель – фрактальная геометрия. Здесь в основу
метода построения изображений положен принцип наследования от, так называемых,
«родителей» геометрических свойств объектов-наследников.
Построению фракталов способствует алгоритм, написанный на каком-либо языке
программирования, который способен визуализировать графические элементы на экран.
Реализация алгоритма в различных средах программирования дает различный результат
в плане скорости отображения. Возникает вопрос: с чем это связано?
Этот вопрос лежит в основе данной научно-исследовательской работы.
Объектом исследования является компьютерная графика.
Предметом исследования является зависимость скорости построения компьютерной
графики от технических характеристик персонального компьютера.
Цель – выявить, обосновать и экспериментально проверить технические условия для
отображения фрактальной графики в различных средах программирования.
Для достижения поставленной цели необходимо решить следующие задачи:
– проанализировать научную литературу по проблеме исследования;
– реализовать алгоритм построения фракталов в различных средах программирования;
– проанализировать технические составляющие персонального компьютера;
– определить функциональную зависимость;
– проанализировать полученные результаты.
Для решения поставленных задач мы будем использовать следующие методы
исследования:
– теоретический анализ и обобщение научной литературы;
– моделирование фрактальной графики;
– выявление функциональной зависимости;
– анализ полученных данных.
3
При выполнении исследовательской работы нами была выдвинута следующая гипотеза:
«Предполагается, что на скорость отображение компьютерной графики влияет тактовая частота
процессора и объем оперативной памяти».
ГЛАВА 1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
1.1. Графические возможности языков программирования
Для построения фрактальной графики мы будем использовать среды программирования
PASCAL.ABC и BORLAND DELPHI 7.
Для
реализации
алгоритма
в
среде
PASCAL.ABC
требуется
подключение
дополнительных библиотек. Для работы в графическом режиме необходимо подключение
модуля GraphABC: Uses GraphABC. Графический экран Pasсal.ABC (по умолчанию) содержит
640 точек по горизонтали и 400 точек по вертикали.
Построение графики в среде DELPHI предполагает обращение к канве – свойству Canvas
компонентов. Canvas – это холст, который позволяет программисту иметь доступ к каждой
своей точке (пикселу), и словно художнику отображать то, что требуется.
1.2. Фрактальная графика
Понятия фрактал, фрактальная геометрия и фрактальная графика, появившиеся в конце
70-х, сегодня прочно вошли в обиход математиков и компьютерных художников. Слово
фрактал образовано от латинского «fractus» и в переводе означает «состоящий из фрагментов».
Оно было предложено математиком Бенуа Мандель-Бротом в 1975 году для обозначения
нерегулярных, но самоподобных структур, которыми он занимался.
С точки зрения машинной графики, фрактальная геометрия незаменима при генерации
искусственных облаков, гор, поверхности моря. Фактически, благодаря фрактальной графике,
найден способ эффективной реализации сложных неевклидовых объектов, образы которых
весьма похожи на природные. Геометрические фракталы на экране компьютера — это узоры,
построенные самим компьютером по заданной программе. Помимо фрактальной живописи
существуют фрактальная анимация и фрактальная музыка.
К фрактальной графике в различные годы обращались Нукулин Е.А., Васильев В.Е.,
Залогова Л.А. и др.
В своих работах о компьютерной графике они акцентировали свое внимание на том, что
создатель фракталов – это «художник, скульптор, фотограф, изобретатель и ученый в одном
лице» [].
4
ГЛАВА 2. ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ
2.1. Программная реализация
В качестве примера мы рассмотрели множество Мандельброта.
Множество Мандельброта – это множество таких точек c на комплексной плоскости, для
которых итерационная последовательность z n 1  z n2  c при z 0  0 является ограниченной. То
есть, это множество таких c, для которых существует такое действительное R, что неравенство
z n  R выполняется при всех натуральных n.
Множество Мандельброта является одним из самых известных фракталов, в том числе за
пределами математики, благодаря своим цветным визуализациям. Его фрагменты не строго
подобны исходному множеству, но при многократном увеличении определённые части всё
больше похожи друг на друга.
Листинг программы в среде Pascal.ABC представлен в приложении А.
Листинг программы в среде Borland Delphi 7 представлен в приложении Б.
2.2. Расчет функциональной зависимости
Изучив научную литературу по проблеме исследования и приняв во внимание
поставленную гипотезу, для расчета функциональной зависимости мы возьмем следующие
показатели, которые влияют на производительности графики:
– количество ядер центрального процессора (Х1);
– тактовая частота центрального процессора, МГц (Х2);
– объем видеопамяти, Мб (Х3);
– объем оперативной памяти, Мб (Х4).
Для проведения экспериментов нам понабились 10 персональных компьютеров с
различными параметрами.
Перед
проведением
эксперимента
у
каждого
компьютера
определены
его
основополагающие параметры Xi.
Скорость построения фрактальной графики измеряется автоматически как разница
значений системного времени запуска программы и завершением алгоритма построения.
Результаты измерений занесем в таблицу 1.
5
Таблица 1
Результаты эксперимента
Наблюдения
Х1
Х2
Х3
Х4
1
2
3
4
5
6
7
8
9
10
1
1
3
3
4
4
4
4
5
5
2,7
3,3
2,4
2,4
2,4
1,6
1,9
2,3
2,4
2,9
512
512
1024
1024
1024
512
1024
1024
1024
1024
512
1024
2048
1024
2048
2048
2048
3072
4096
4096
Время
отображения
Pascal.ABC, сек
3,8
3,7
3,6
3,5
3,4
3,4
3,3
3,3
3,2
3,3
Время
отображения
Delphi, сек
5,3
5,1
5,0
5,0
4,9
4,9
4,8
4,8
4,6
4,7
По данным таблицы произведем корреляционный анализ в Microsoft Excel 2013.
Корреляционный анализ рассчитывает коэффициенты при вводимых неизвестных для
отображения зависимости и получения уравнения от нескольких переменных (см. рис. 1, 2).
На основе полученных коэффициентов мы можем составить уравнения зависимость
времени отображения графической информации:
1. Pascal.ABC: y 1  3 . 81  0 . 1 x 1  0 . 03 x 2  2 . 7  10  5 x 3  2 . 4  10  5 x 4 ;
2. Delphi: y 2  5 . 37  0 . 08 x1  0 . 01 x 2  3 . 1  10  5 x 3  6 . 9  10  5 x 4 .
Уравнения y1 и y2 позволят нам рассчитать время для отображения графики в различных
средах программирования.
Следует отметить, что при анализе этих двух уравнений наибольшее влияние на
конечный результат оказывает переменная х1 (количество ядер центрального процессора) и х2
(тактовая частота центрального процессора).
6
Таким
образом,
если
в
персональном
компьютере
используется
следующая
модификация:
– Intel® Core™ i7-6500U Processor,
– 3.10 GHz,
– 1024 Мб (видеокарта),
– 4096 Мб (оперативная память),
то загрузка графического изображения Pascal.ABC может составить: 3,08 сек; загрузка
графического изображения Delphi может составить: 4,46 сек.
Как можно увидеть, при разном аппаратном обеспечении время отображения
графических объектов изменяется.
7
ЗАКЛЮЧЕНИЕ
В результате проведенных экспериментов и анализа полученных данных, можно сделать
вывод, что на оптимизацию построения графических объектов
в различных средах
программирования в больше степени влияет количество ядер и тактовая частота центрального
процессора.
На основе полученных данных можно сделать вывод, что наша гипотеза верна лишь
частично (по отношению к тактовой частоте профессора). Что касается объема оперативной
памяти,
то
влияние
этого
параметра
на
скорость
отображения
графики
является
незначительным.
Сделанные выводы позволяют нам говорить о том, что поставленная цель достигнута,
задачи работы выполнены.
В
результате
выполнения
научно-исследовательской
работы
мы
не
только
познакомились с фрактальной графикой, закрепили основные навыки работы в различных
средах программирования, но и смогли проанализировать зависимость результата от
нескольких переменных величин.
Улучшение аппаратной части персонального компьютера позволяет значительно
ускорить его производительность, как в плане вычислений, так и при обработке графической
информации.
СПИСОК ЛИТЕРАТУРЫ
1. Васильев В.Е. Компьютерная графика: учебное пособие / В.Е. Васильев, А.В. Морозов. –
СПб: СЗТУ, 2005. – 101 с.
2. Залогова Л.А. Компьютерная графика: учебное пособие / Л.А. Залогова. – М.: ИНФРАМ, 2005. – 212 с.
3. Никулин Е.А. Компьютерная геометрия и алгоритмы машинной графики / Е.А. Никулин.
– СПб: БХВ-Петербург, 2003. – 560 с.
4. Программирование компьютерной графики // PASCALABC.NET [электронный ресурс].
–
Режим
доступа:
http://www.pascalabc.net/stati-po-pascalabc-net/obuchenie-
prigrammirovaniyu/16-grafika-grafika-chast-1-vvedenie.html, свободный.
5. Тюкачев Н.И. Программирование компьютерной графики в Delphi / Н.И. Тюкачев. –
СПб: БХВ-Петербург, 2008. – 779 с.
8
ПРИЛОЖЕНИЕ А
Листинг программы в среде PASCAL.ABC
uses GraphABC;
const
n=300;
max=10;
var
x,y,x1,y1,cx,cy: real;
i,ix,iy: integer;
// z=z^2+c
begin
SetWindowSize(600,600);
SetWindowCaption('Фракталы: множество Мандельброта');
for ix:=0 to WindowWidth-1 do
for iy:=0 to WindowHeight-1 do
begin
x:=0;
y:=0;
cx:=0.005*(ix-365);
cy:=0.005*(iy-300);
for i:=1 to n do
begin
x1:=x*x-y*y+cx;
y1:=2*x*y+cy;
if (x1>max) or (y1>max) then break;
x:=x1;
y:=y1;
end;
if i>=n then SetPixel(ix,iy,clRed)
else SetPixel(ix,iy,RGB(155,155-i*10,155-i));
end;
end.
9
ПРИЛОЖЕНИЕ Б
Листинг программы в среде DELPHI
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Image1: TImage;
Button2: TButton;
procedure Button2Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
//MANDELBROT
procedure TForm1.Button2Click(Sender: TObject);
var
cc: integer;
tgx, tgy, rX1, rY1: extended;
x, y, l, n:integer;
c_real, c_img, x1, X2,Y1,Y2: Double;
xx, zm, zr, zi: Double;
begin
n:=300;
L:=10;
x1:=-2.4;
x2:=0.8;
y1:=-1.2;
y2:=1.2;
//проверяем условия и вычисляем коэффициент перевода в декартову
систему
if x1<0 then begin if x2>0 then tgx:=abs(x1)+abs(x2); end;
if x1<0 then begin if x2<0 then tgx:=abs(x1)-abs(x2); end;
if x1>0 then begin if x2>0 then tgx:=x2-x1; end;
if y1<0 then begin if y2>0 then tgy:=abs(y1)+abs(y2); end;
if y1<0 then begin if y2<0 then tgy:=abs(y1)-abs(y2); end;
if y1>0 then begin if y2>0 then tgy:=y2-y1; end;
begin
screen.Cursor:=crHourGlass; //Установка курсора в песочные часы
for x:=0 to image1.Width do //Перебираем точки по х
begin
rX1:=X1+(tgx / image1.Width)*x; //Приводим х к координатам декарта
for y:=0 to image1.Height do //Перебираем точки по у
begin
rY1:=Y1+(tgy / Image1.Height)*y; //Приводим у к координатам декарта
zr:=0;
zi:=0;
10
zm:=0;
for cc:=0 to n do
begin
xx:=zr;
zr:=sqr(xx)-sqr(zi)+ rX1;
zi:=2*xx*zi+rY1;
zm:=sqr(zr)+sqr(zi);
if zm>L then break;
end;
//Раскрашиваем (изменяя множитель меняем цвет)
if zm<L then image1.Canvas.Pixels[x,y]:=clblack else
image1.Canvas.Pixels[x,y]:=rgb(cc*5,cc*9,cc*4);
end;
end;
screen.cursor:=crDefault;
end;
end;
end.
11
Автор
sirazsv
Документ
Категория
Без категории
Просмотров
22
Размер файла
127 Кб
Теги
1/--страниц
Пожаловаться на содержимое документа