Автор работы: Пользователь скрыл имя, 05 Января 2014 в 12:51, курсовая работа
Целью работы является рассмотрение различных способов представления мультимедийной информации в компьютере.
Для достижения поставленной цели необходимо решить следующие задачи:
1. Выявить особенности представления различных видов графической информации.
2. Рассмотреть различные цветовые схемы, а также графические форматы.
3. Написать программу для наглядного представления построения некоторых видов фракталов.
4. Рассмотреть способы представления звуковой информации и распространенных аудио форматов.
end;
// Вызов процедуры построения треугольника Серпинского посредством нажатия на кнопку «Нарисовать»
procedure TForm1.Button3Click(Sender: TObject);
begin
// Заполняем область для рисование белым цветом
image1.Canvas.Brush.Color:=
image1.Canvas.rectangle(0,0,
// Задаемся начальными точками
x1:=10;
y1:=10;
x2:=320;
y2:=470;
x3:=630;
y3:=10;
image1.Canvas.CleanupInstance;
image1.Canvas.rectangle(0,0,
if spinedit1.value >0 then
begin
FinalUroven:=Spinedit1.Value;
Treugolnik_serpinskogo(0,x1,
end;
end;
// Вызов процедуры построения треугольника Серпинского высшего уровня посредством нажатия на кнопку «Следующий»
procedure TForm1.Button2Click(Sender: TObject);
begin
image1.Canvas.Brush.Color:=
image1.Canvas.rectangle(0,0,
x1:=10;
y1:=10;
x2:=320;
y2:=470;
x3:=630;
y3:=10;
image1.Canvas.CleanupInstance;
image1.Canvas.rectangle(0,0,
if spinedit1.value >0 then
begin
FinalUroven:=Spinedit1.Value +1;
Spinedit1.Value:=FinalUroven;
Treugolnik_serpinskogo(0,x1,
end;
end;
// Вызов процедуры построения треугольника Серпинского низшего уровня посредством нажатия на кнопку «Предыдущий»
procedure TForm1.Button4Click(Sender: TObject);
begin
if spinedit1.value >1 then
begin
image1.Canvas.Brush.Color:=
image1.Canvas.rectangle(0,0,
x1:=10;
y1:=10;
x2:=320;
y2:=470;
x3:=630;
y3:=10;
image1.Canvas.CleanupInstance;
image1.Canvas.rectangle(0,0,
FinalUroven:=Spinedit1.Value -1;
Spinedit1.Value:=FinalUroven;
Treugolnik_serpinskogo(0,x1,
end;
end;
// Процедура построения драконовой ломаной.
Procedure Drakonova_lomanaya(uroven:
var
dx,dy,AC,CD,AD,cx,cy:real;
begin
inc(uroven);
if Uroven=FinalUroven then
begin
line(x1,y1,x2,y2, form1.image3.canvas);
end
else begin
cx:=(x2+x1)/2;
cy:=(y2+y1)/2;
AC:=sqrt(sqr(cx-x1)+sqr(cy-y1)
dx:=cx + AC * (cos(n+pi/2));
dy:=cy + AC * (sin(n+pi/2));
Drakonova_lomanaya(uroven,x1,
Drakonova_lomanaya(uroven,x2,
end;
end;
// Вызов процедуры построения драконовой ломаной посредством нажатия на кнопку «Нарисовать»
procedure TForm1.btn1Click(Sender: TObject);
begin
x1:=145;
y1:=160;
x2:=560;
y2:=160;
cc:=(pi/180);
FinalUroven:=spinedit6.Value;
if FinalUroven > 0 then begin
image3.Canvas.Brush.Color:=
image3.Canvas.rectangle(0,0,
Drakonova_lomanaya(0,x1,y1,x2,
if FinalUroven > 1 then begin
Image3.Canvas.Pen.Color:=
FinalUroven:=FinalUroven-1;
Drakonova_lomanaya(0,x1,y1,x2,
Image3.Canvas.Pen.Color:=
end;
end;
end;
// Вызов процедуры построения драконовой ломаной высшего уровня посредством нажатия на кнопку «Следующий»
procedure TForm1.Button5Click(Sender: TObject);
begin
x1:=145;
y1:=160;
x2:=560;
y2:=160;
cc:=(pi/180);
if FinalUroven > 0 then begin
FinalUroven:=spinedit6.Value+
spinedit6.Value:=FinalUroven;
image3.Canvas.Brush.Color:=
image3.Canvas.rectangle(0,0,
Drakonova_lomanaya(0,x1,y1,x2,
if FinalUroven > 1 then begin
Image3.Canvas.Pen.Color:=
FinalUroven:=FinalUroven-1;
Drakonova_lomanaya(0,x1,y1,x2,
Image3.Canvas.Pen.Color:=
end;
end;
end;
// Вызов процедуры построения драконовой ломаной низшего посредством нажатия на кнопку «Предыдущий»
procedure TForm1.Button6Click(Sender: TObject);
begin
x1:=145;
y1:=160;
x2:=560;
y2:=160;
cc:=(pi/180);
if FinalUroven > 1 then begin
FinalUroven:=spinedit6.Value-
spinedit6.Value:=FinalUroven;
image3.Canvas.Brush.Color:=
image3.Canvas.rectangle(0,0,
Drakonova_lomanaya(0,x1,y1,x2,
if FinalUroven > 2 then begin
Image3.Canvas.Pen.Color:=
FinalUroven:=FinalUroven-1;
Drakonova_lomanaya(0,x1,y1,x2,
Image3.Canvas.Pen.Color:=
end;
end;
end;
// Процедура построения «бассейнов» Ньютона.
procedure newton(coeff:Real);
Type
TComplex = Record
X : Real;
Y : Real;
End;
Const
iter = 500;
max = 1e+10;
min = 1e-10;
Var
z, t, d : TComplex;
p : Real;
x, y, n : Integer;
gd, gm : Integer;
mx, my : Integer;
Begin
Randomize;
Mx := 656 div 2;
My := 472 div 2;
For y := -my to my do
For x := -mx to mx do Begin
n := 0;
z.x := X*coeff; // Масштабирование фрактала
z.y := Y*coeff;
d := z;
While (sqr(z.x)+sqr(z.y) < max) and (sqr(d.x)+sqr(d.y) > min)
and (n < iter) do Begin
t := z;
p := sqr(sqr(t.x)+sqr(t.y));
z.x := 2/3*t.x + (sqr(t.x)-sqr(t.y))/(3*p);
z.y := 2/3*t.y*(1-t.x/p);
d.x := abs(t.x - z.x);
d.y := abs(t.y - z.y);
Inc(n);
end;
Form1.Image4.Canvas.Pixels[mx + x,my + y] := (16 - (n mod 16))*16;
End;
end;
// Вызов процедуры построения бассейна ньютона посредством нажатия на кнопку «Нарисовать»
procedure TForm1.Button1Click(Sender: TObject);
var coeff:Real;
begin
image4.Canvas.Brush.Color:=
image4.Canvas.rectangle(0,0,
Coeff:=spinedit8.value*0.0001 + 0.0007;
newton(coeff);
end;
// Процедура построения биоморфа.
procedure biomorf(var coeff2, coeff3, coeff4:real);
var re,im,re1,im1: Real ;
V,X,Y, gd, gm : Integer;
C: string;
label m1;
// Вспомогательная процедура возведения в куб комплексного числа
procedure KUB ; begin
re1:=re*(re*re-3*im*im) ;
im1:=im*(3*re*re-im*im) ; re:=re1 ; im:=im1 ;
end ;
begin
X:=-328 ;
REPEAT
Y:=-236 ;
REPEAT
V:=0 ;
re:=-1+coeff2*X ; // масштабирование фрактала
im:=0+coeff2*Y ;
REPEAT KUB ;
KUB ;
re:=re-coeff3 ; // изменение внешнего вида
im:=im+coeff4 ;
if re*re > 5 then GOTO m1;
if re*re > 6 then GOTO m1;
V:=V+1 ;
UNTIL V > 10 ;
m1: IF ( abs(re) < 7 ) OR (abs(im) < 3 ) then
Form1.Image5.Canvas.Pixels[X+
ELSE Form1.Image5.Canvas.Pixels[X+
Y:=Y+1 ;
UNTIL Y > 237 ;
X:=X+1 ;
UNTIL X > 478 ;
END;
// Вызов процедуры построения фрактала посредством нажатия на кнопку «Нарисовать»
procedure TForm1.btn2Click(Sender: TObject);
var coeff2, coeff3, coeff4:Real;
begin
image5.Canvas.Brush.Color:=
image5.Canvas.rectangle(0,0,
Coeff2:=spinedit9.value*0.0001 + 0.0007;
Coeff3:=spinedit2.value*0.1;
coeff4:=spinedit3.value*0.01;
biomorf(coeff2, coeff3, coeff4);
end;
end.
Программа прилагается на диске.
В данной работе были выявлены особенности представления различных видов графической информации, рассмотрены различные цветовые схемы, а также графические форматы. Для создания своей практической части, я остановила свой выбор на одном из видов компьютерной графики.
Кроме этого, в данной дипломной работе были рассмотрены способы представления аудио- и видеоинформации, а так же наиболее распространенные форматы.
Особое внимание было уделено написанию программы, позволяющей наглядно продемонстрировать построение некоторых видов фракталов.
1. «Информатика. Базовый курс». Учебник для Вузов/под ред. С.В. Симоновича, - СПб.: Питер, 2000;
2. Левин А.Ш. «Самоучитель компьютерной графики и звука. 2-е изд». - СПб.: Питер, 20064
3. Борзенко А.Е. , Федоров А.Г. «Мультимедиа для всех». - М.: ТОО фирма "КомпьютерПресс", 1995;
4. В. П. Иванов, А. С. Батраков. «Трёхмерная компьютерная графика» / Под ред. Г. М. Полищука. — М.: Радио и связь, 1995;
5. Никлаус Вирт – «Алгоритмы + структуры данных = программы». М.: Мир, 1985;
6. Архангельский А.Я. – «Программирование в Delphi. Учебник по классическим версиям Delphi. Учебник по классическим версиям Delphi». Бином-Пресс, 2008;
7. http://ru.wikipedia.org – Свободная энциклопедия;
8. http://delphisourses.ru – Программирование на Delphi;
9. http://fractals.chat.ru – Вселенная фракталов.
3