Компьютерная графика

Автор работы: Пользователь скрыл имя, 11 Января 2015 в 18:03, реферат

Описание работы

Целью работы является рассмотрение различных способов представления мультимедийной информации в компьютере.
Для достижения поставленной цели необходимо решить следующие задачи:
1. Выявить особенности представления различных видов графической информации.
2. Рассмотреть различные цветовые схемы, а также графические форматы.
3. Написать программу для наглядного представления построения некоторых видов фракталов.

Файлы: 1 файл

диплом.DOC

— 1.37 Мб (Скачать файл)

 

// Вызов процедуры построения треугольника Серпинского посредством нажатия на кнопку «Нарисовать»

procedure TForm1.Button3Click(Sender: TObject);

begin

// Заполняем область для рисование белым цветом

image1.Canvas.Brush.Color:=clWhite;

image1.Canvas.rectangle(0,0,image1.Width,image1.Height);

// Задаемся начальными точками

x1:=10;

y1:=10;

x2:=320;

y2:=470;

x3:=630;

y3:=10;

 

image1.Canvas.CleanupInstance;

image1.Canvas.rectangle(0,0,654,472);

if spinedit1.value >0 then

begin

FinalUroven:=Spinedit1.Value;

Treugolnik_serpinskogo(0,x1,y1,x2,y2,x3,y3);

end;

end;

 

// Вызов процедуры построения треугольника Серпинского высшего уровня посредством нажатия на кнопку «Следующий»

procedure TForm1.Button2Click(Sender: TObject);

begin

  image1.Canvas.Brush.Color:=clWhite;

image1.Canvas.rectangle(0,0,image1.Width,image1.Height);

 

x1:=10;

y1:=10;

x2:=320;

y2:=470;

x3:=630;

y3:=10;

 

image1.Canvas.CleanupInstance;

image1.Canvas.rectangle(0,0,654,472);

if spinedit1.value >0 then

begin

FinalUroven:=Spinedit1.Value +1;

Spinedit1.Value:=FinalUroven;

Treugolnik_serpinskogo(0,x1,y1,x2,y2,x3,y3);

end;

end;

 

 

// Вызов процедуры построения треугольника Серпинского низшего уровня посредством нажатия на кнопку «Предыдущий»

procedure TForm1.Button4Click(Sender: TObject);

begin

if spinedit1.value >1 then

begin

image1.Canvas.Brush.Color:=clWhite;

image1.Canvas.rectangle(0,0,image1.Width,image1.Height);

 

x1:=10;

y1:=10;

x2:=320;

y2:=470;

x3:=630;

y3:=10;

 

image1.Canvas.CleanupInstance;

image1.Canvas.rectangle(0,0,654,472);

 

FinalUroven:=Spinedit1.Value -1;

Spinedit1.Value:=FinalUroven;

Treugolnik_serpinskogo(0,x1,y1,x2,y2,x3,y3);

end;

end;

 

// Процедура построения драконовой ломаной.

Procedure Drakonova_lomanaya(uroven:integer;x1,y1,x2,y2:real;n:real);

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,y1,dx,dy,n+45*cc);

Drakonova_lomanaya(uroven,x2,y2,dx,dy,n+90*cc+45*cc);

 

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:=clWhite;

image3.Canvas.rectangle(0,0,image3.Width,image3.Height);

Drakonova_lomanaya(0,x1,y1,x2,y2,0);

 

if FinalUroven > 1 then begin      

Image3.Canvas.Pen.Color:=clRed;       

FinalUroven:=FinalUroven-1;                    

Drakonova_lomanaya(0,x1,y1,x2,y2,0);

Image3.Canvas.Pen.Color:=clBlack;

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+1;

spinedit6.Value:=FinalUroven;

image3.Canvas.Brush.Color:=clWhite;

image3.Canvas.rectangle(0,0,image3.Width,image3.Height);

Drakonova_lomanaya(0,x1,y1,x2,y2,0);

 

if FinalUroven > 1 then begin

Image3.Canvas.Pen.Color:=clRed;

FinalUroven:=FinalUroven-1;

Drakonova_lomanaya(0,x1,y1,x2,y2,0);

Image3.Canvas.Pen.Color:=clBlack;

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-1;

spinedit6.Value:=FinalUroven;

image3.Canvas.Brush.Color:=clWhite;

image3.Canvas.rectangle(0,0,image3.Width,image3.Height);

Drakonova_lomanaya(0,x1,y1,x2,y2,0);

 

if FinalUroven > 2 then begin

Image3.Canvas.Pen.Color:=clRed;

FinalUroven:=FinalUroven-1;

Drakonova_lomanaya(0,x1,y1,x2,y2,0);

Image3.Canvas.Pen.Color:=clBlack;

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:=clWhite;

image4.Canvas.rectangle(0,0,image4.Width,image4.Height);

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+178,Y+236]:=V*8000

 

              ELSE  Form1.Image5.Canvas.Pixels[X+178,Y+236]:=clsilver;

           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:=clWhite;

image5.Canvas.rectangle(0,0,image5.Width,image5.Height);

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


Информация о работе Компьютерная графика