DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Графіко-розрахункова робота: Створення проекту з елементами графіки

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

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

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

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

Про що ця робота

У роботі розроблено програмний проект у середовищі Delphi з реалізацією рухомих графічних об'єктів. Програма демонструє анімацію зоряного неба та руху місяця з використанням об'єктно-орієнтованого підходу.

У роботі розглядаються

  • Об'єктно-орієнтоване програмування
  • Комп'ютерна графіка
  • Середовище Delphi
  • Анімація графічних об'єктів
  • Обробка подій клавіатури
  • Використання таймерів

Зміст і розділи

  1. Завдання
  2. Текст програми moon_and_stars.pas
  3. Модуль classmoon_stars.pas
  4. Висновок
Для кого:Студенти технічних спеціальностей, викладачі та розробники, які вивчають об'єктно-орієнтоване програмування та графіку в середовищі Delphi.
Викладачі:Дронюк І.М.

Ключові поняття

Delphiоб'єктно-орієнтоване програмуванняграфіко-розрахункова роботаанімаціякласканваподіїполотнометод

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

Міністерство освіти та науки України НУ «Львівська політехніка» Кафедра АСУ Графіко - розрахункова робота по курсу Об’єктно орієнтоване програмування на тему: "Створення проекту з елементами графіки" Варіант № 18 «Зірки мерехтять, місяць пливе.» Прийняла: доц. [ім’я автора приховано] м. Львів – 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. А також засвоїв основні принципи графіки у ньому. Навчився створювати елементарні проекти з використанням графіки. Створення малюнків, їх збільшення/зменшення. Рух об’єктів, прискорення та сповільнення руху і т.п.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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