Створення проекту з елементами графіки.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Автоматизовані Системи Управління

Інформація про роботу

Рік:
2007
Тип роботи:
Розрахунково - графічна робота
Предмет:
Об’єктно-орієнтоване програмування
Група:
КН-312
Варіант:
18

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України НУ «Львівська політехніка» Кафедра АСУ Графіко - розрахункова робота по курсу Об’єктно орієнтоване програмування на тему: "Створення проекту з елементами графіки" Варіант № 18 «Зірки мерехтять, місяць пливе.» Виконав: ст.гр. КН-312 Прийняла: доц. Дронюк І.М. м. Львів – 2007р. Створення проекту з елементами графіки Варіант № 18 «Зірки мерехтять, місяць пливе.» ЗАВДАННЯ: Створити проект Delphi для побудови рухомих графічних зображень. Основні елементи зображення розглядати як об'єкти класів, які необхідно ввести та описати. Рух або зміну об'єктів реалізувати за допомогою відповідних методів класів. Рух більшості об'єктів здійснюється зліва направо, а тоді повторюється або змінює напрямок. Програма має реагувати на керуючі клавіші: 1) для видачі підказки; [F1] 2) для зупинки (паузи) та продовження руху; [Space] 3) старт із початкового стану; [Home] 4) збільшення-зменшення об'єкта; [Arrow Up/Down] 5) уповільнення-прискорення руху; [Arrow left/Right] 6) завершення програми. [Escape] Варіанти 18. Зірки мерехтять, місяць пливе. Текст програми: moon_and_stars.pas unit moon_and_stars; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Timer1: TTimer; Label1: TLabel; procedure FormPaint(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses ClassMoon_Stars; var TMS: TMoonAndStars; x1,x2,y1,y2:integer; msh:double; procedure TForm1.FormPaint(Sender: TObject); begin Canvas.Brush.Color:=clWhite; Canvas.Pen.Color:=clWhite; TMS.PolyStar(1000,true);end; procedure TForm1.FormCreate(Sender: TObject); begin Form1.Color:=clBlack; y2:=Form1.ClientHeight div 2 + 40; y1:=Form1.ClientHeight div 2 - 40; x1:=0; x2:=60; Timer1.Interval:=50; msh:=0.5;end; procedure TForm1.Timer1Timer(Sender: TObject); begin TMS.Moon(x1,x2,y1,y2,false,msh); TMS.PolyStar(1500,false); if x2<Form1.ClientWidth then begin x1:=x1+1; x2:=x2+1; end; if x2>=Form1.ClientWidth then begin x1:=0; x2:=60; end; TMS.Moon(x1,x2,y1,y2,true,msh); TMS.PolyStar(10,true);end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key=VK_Right) and (Timer1.Interval>10) then Timer1.Interval:=Timer1.Interval-2; if (Key=VK_Left) and (Timer1.Interval<600) then Timer1.Interval:=Timer1.Interval+2; if (Key=VK_Up) and (msh<7.0) then begin msh:=msh+0.5*msh; end; if (Key=VK_Down) and (msh>0.5) then begin TMS.Moon(x1,x2,y1,y2,false,msh); msh:=msh-0.5*msh; end; if (Key=VK_ESCAPE) then Application.Terminate; if (Key=VK_SPACE) then Timer1.Interval:=not Timer1.Interval; if (Key=VK_HOME) then begin Form1.Refresh; x1:=0; x2:=60; Timer1.Interval:=50; msh:=0.5; end; if (Key=VK_F1) then MessageDlg('[Стрілка вліво] -> сповільнення руху місяця'+#13+ '[Стрілка вправо] -> пришвидшення руху місяця'+#13+ '[Стрілка вгору] -> збільшення місяця'+#13+ '[Стрілка вниз] -> зменшення місяця'+#13+ '[Space] -> зупинка/продовження руху'+#13+ '[Home] -> повернення на початок'+#13+ '[Escape] -> вихід',mtInformation,[mbOk],1); end; end. ClassMoon_Stars.pas aunit ClassMoon_Stars; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Math, moon_and_stars; type TMoonAndStars = class constructor Create; procedure PolyStar(kil:integer;trying:boolean); procedure Moon(x1,x2,y1,y2:integer;rezhym:boolean;msh:real);end; implementation constructor TMoonAndStars.Create; beginend; procedure TMoonAndStars.PolyStar(kil:integer;trying:boolean); var i,x0,y0:integer; begin randomize; for i:=0 to kil do begin x0:=random(Form1.ClientWidth); y0:=random(Form1.ClientHeight); if not trying then Form1.Canvas.Pixels[x0,y0]:=clBlack else Form1.Canvas.Pixels[x0,y0]:=clWhite;end;end; procedure TMoonAndStars.Moon(x1,x2,y1,y2:integer;rezhym:boolean;msh:real); var x_ser,y_ser:integer; x_vidst,y_vidst:real; begin x_vidst:=x2-x1; x_ser:=round(x_vidst/2)+x1; y_vidst:=y1-y2; y_ser:=round(y_vidst/2)+y2; x_vidst:=msh*x_vidst; x1:=x_ser-round(x_vidst/2); x2:=x_ser+round(x_vidst/2); y_vidst:=msh*y_vidst; y1:=y_ser+round(y_vidst/2); y2:=y_ser-round(y_vidst/2); if not rezhym then with Form1.Canvas do begin Brush.Color:=clBlack; Pen.Color:=clBlack; Ellipse(x1-20,y1,x2,y2); Ellipse(x1,y1,x2,y2); end else with Form1.Canvas do begin Brush.Color:=clWhite; Ellipse(x1-15,y1,x2,y2); Brush.Color:=clBlack; Ellipse(x1,y1,x2,y2); end;end;end. Висновок: Виконуючи дану графімо-розрахункову роботу я навчився працювати в середовищі Delphi7. А також засвоїв основні принципи графіки у ньому. Навчився створювати елементарні проекти з використанням графіки. Створення малюнків, їх збільшення/зменшення. Рух об’єктів, прискорення та сповільнення руху і т.п.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!