Побудова рухомих зображень

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

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

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

Рік:
2003
Тип роботи:
Графіки
Предмет:
Інші
Група:
ІБ

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

Міністерство освіти і науки України Національний університет “Львівська політехніка” кафедра АТ Звіт до лабораторної роботи №4 з курсу “Комп’ютерна графіка” на тему: “Побудова рухомих зображень” Варіант №16 1.Мета роботи: Набути практичних навиків в складанні прграм для побудови рухомих зображень на екрані комп’ютера за допомогою матричних перетворень. 2. Завдання: 2.1 Вивчити основні матричні перетворення на площині для побудови рухомих зображень. 2.2 Вивести результуючу матрицю руху для свого варіанту завдання, визначеного нижче. 2.3 Написати програму мовою Турбо-Паскаль, що дозволяє сформувати на екрані комп’ютера рухоме зображення. 2.4 Текст завдання: Затухаючі коливання кола з діаметром 20 , висота 100. 3. Блок-схеми алгоритмів програми 3.1 3.2 3.3 3.1 Деталізована блок-схема блоку № 1 (ініціалізація графічного режиму) загальної блок-схеми: 1 2 3 ні ні так 4 5 3.2 Деталізована блок-схема блоку № 2 (рух квадрату) загальної блок-схеми: 1 2 3 4 5 6 7 8 9 10 11 так ні так ні так ні 3.3 Деталізована блок-схема блоку № 3 (завершення графічного режиму) загальної блок-схеми: 1 4. Список ідентифікаторів, змінних процедур і функцій. H – висота з якої падає коло D – діаметр кола n – приймає занчення 1 або 0, використовується для зміни сторінок. Процедура IntGraphMode ініціалізує графічний режим. Процедура CloseGraphMode - завершує роботу графічного режиму. 5. Остаточно відлагоджений текст програми: uses graph,crt; Procedure IntGraphMode(Mode:integer); var Driver, Error: integer; begin Driver:=Detect; InitGraph(Driver, Mode, ''); Error:=GraphResult; if Error <> grOk then begin writeln(GraphErrorMsg(Error)); halt(1); end; end; {******************************} Procedure CloseGraphMode; begin CloseGraph; end; {******************************} var x:array[1..180] of integer; y:array[1..180] of integer; j,r,xc,yc,i,n,M:integer; alfa:real; begin R:=90; { расстояние от вершин до центра xc, yc } xc:= GetMaxX div 2; yc:= GetMaxY div 2; for j:= 1 to 180 do begin alfa:= (j+1) * pi/90; x[j]:= xc + round(R * cos(-alfa)); y[j]:= yc + round(R * sin(-alfa)); end; repeat for j:=1 to 180 do begin for i:= 1 to 40 do begin if (i mod 2)>0 then N:=0 else N:=1; if (i mod 2)>0 then M:=1 else M:=0; SetActivePage(N); MoveTo(x[j]+round(sqrt(4000)*cos(i*pi/90)),y[j]+round(sqrt(4000)*sin(i*pi/90))); LineTo(x[j]+round(sqrt(4000)*cos(i*pi/90+pi/2)),y[j]+round(sqrt(4000)*sin(i*pi/90+pi/2))); LineTo(x[j]+round(sqrt(4000)*cos(i*pi/90+pi)),y[j]+round(sqrt(4000)*sin(i*pi/90+pi))); LineTo(x[j]+round(sqrt(4000)*cos(i*pi/90+(3*pi/2))),y[j]+round(sqrt(4000)*sin(i*pi/90+(3*pi/2)))); LineTo(x[j]+round(sqrt(4000)*cos(i*pi/90+2*pi)),y[j]+round(sqrt(4000)*sin(i*pi/90+2*pi))); Circle(xc,yc,R); delay(90); { SetVisualPage(m); } delay(7300); cleardevice; Circle(Xc,Yc,R); i:=i+1; if keypressed then halt(1); end; j:=j+1; end; until keypressed; end; {******************************} begin IntGraphMode(VGAMed); Kvadrat; CloseGraphMode; end.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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