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

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

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

Рік:
2024
Тип роботи:
Розрахунково - графічна робота
Предмет:
Проектування комп’ютерних засобів обробки сигналів та зображень

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

1. ЗАВДАННЯ 2. ТЕОРЕТИЧНА ЧАСТИНА При виконанні роботи постає питання, як здійснити поворот певної точки. Для розв’язання цієї проблеми можна використати матриці перетворень:  EMBED Equation.3  - матриця переміщення. Переміщуємо точку, відносно якої буде відбуватися поворот на початок координат.  EMBED Equation.3  - матриця повороту. Здійснюємо поворот точки на кут  EMBED Equation.3 .  EMBED Equation.3  - матриця переміщення. Переміщуємо точку, відносно якої відбувся поворот на своє початкове місце. Щоб реалізувати цей метод на практиці і вивести рівняння для отримання нових координат точки, знаючи її початкові координати, координати точки, відосно якої буде відбуватися поворот, та кут, на який необхідно здійснити цей поворот, треба перемножити наведені вище матриці:  EMBED Equation.3  - результуюча матриця. Замінимо елементи матриці умовними позначеннями:  EMBED Equation.3  Таким чином можна отримати систему рівнянь:  EMBED Equation.3  Введемо деякі пояснення: 1) ( EMBED Equation.3 ;  EMBED Equation.3 ) – координати точки, відносно якої відбувається поворот. 2) ( EMBED Equation.3 ;  EMBED Equation.3 ) – початкові координати точки (до повороту). 3) ( EMBED Equation.3 ;  EMBED Equation.3 ) – координати точки після повороту. 4)  EMBED Equation.3  - кут повороту; додатній, якщо поворот відбувається проти годинникової стрілки, і від’ємний, якщо поворот відбувається за годиниковою стрілкою. 3. БЛОК-СХЕМА АЛГОРИТМУ 3.1. Головна блок-схема. 1. так cx>300 ні 3 19 Рис. 3.1. Головна блок-схема. 3 15 обчислення контрольних координат 14. вибір кольору та побудова діагоналей кола 13. зафарбавування кола вибір способу заповнення замкнутої області вибір кольору та побудова кола 7. x1:=352; x2:=368; y1:=200; y2:=200; 3. процедура встановлення граф. режиму 12. 11. 10. 9. 8. 6. 5. 4. 2. побудова зафарбованого прямокутника вибір способу заповнення замкнутої області cx:=360; cy:=200; k:=5.625/pi; x3:=360; x4:=360; y3:=192; y4:=208; оголош. змінних і констант початок 2 14 2 7 15. cx:=cx-1; Рис. 3.2. Головна блок-схема (продовження). ні 4 31 4 27 обчислення контрольних координат 26. вибір кольору та побудова діагоналей кола 25. зафарбавування кола вибір способу заповнення замкнутої області вибір кольору та побудова кола cy<260 24. 23. 22. 21. 20. 19. побудова зафарбованого прямокутника вибір способу заповнення замкнутої області так 18. побудова зафабованого прямокутника 17. вибір кольору затримка перед продовженням циклу 16. Рис. 3.3. Головна блок-схема (продовження). 5 43 5 39 обчислення контрольних координат 38. вибір кольору та побудова діагоналей кола 37. зафарбавування кола вибір способу заповнення замкнутої області вибір кольору та побудова кола cx<360 36. 35. 34. 33. 32. 31. побудова зафарбованого прямокутника вибір способу заповнення замкнутої області 3 19 побудова зафабованого прямокутника 30. вибір кольору 29. затримка перед продовженням циклу 28. cy:=cy+1; 27. 3 26 так ні Рис. 3.4. Головна блок-схема (продовження). 6 53 обчислення контрольних координат 52. вибір кольору та побудова діагоналей кола 51. зафарбавування кола вибір способу заповнення замкнутої області вибір кольору та побудова кола cy>200 50. 49. 48. 47. 46. 45. побудова зафарбованого прямокутника вибір способу заповнення замкнутої області так ні 44. 43. x1:=352; x2:=368; x3:=360; x4:=360; 42. вибір кольору 41. затримка перед продовженням циклу 40. cx:=cx+1; 39. 4 38 4 31 побудова зафабованого прямокутника y1:=260; y2:=260; y3:=252; y4:=268; 6 57 Рис. 3.5. Головна блок-схема (закінчення). 58. кінець закриття графічного режиму 57. побудова зафабованого прямокутника 56. вибір кольору 55. затримка перед продовженням циклу 54. cy:=cy-1; 53. 5 52 5 45 3.2. Блок-схема встановлення графічного режиму. початок 1. Рис. 3.6. Блок-схема встановлення графічного режиму. 5. кінець встановити графічний режиму 4. 3. drv:=9; mode:=2; оголош. змінних: drv,mode 2. 4. ПРОГРАМА Program Graph2; uses graph,crt; var x1,x2,x3,x4,y1,y2,y3,y4,cx,cy:integer; k,xn1,yn1,xn2,yn2,xn3,yn3,xn4,yn4:real; {процедура встановлення графiчного режиму } PROCEDURE grafika_on; var drv,mode:integer; BEGIN drv:=9; {VGA } mode:=2; {VGAHi} initgraph(drv,mode,''); END; {-------------------------- головна програма ---------------------------} BEGIN grafika_on; {встановити графiчний режим } x1:=352; x2:=368; y1:=200; y2:=200; x3:=360; x4:=360; y3:=192; y4:=208; cx:=360; cy:=200; k:=5.625/pi; {РУХ ПО СТОРОНI CB} while cx>300 do begin setfillstyle(1,8); bar(300,200,360,260); {малюємо зафарбований прямокутник } setcolor(7); arc(cx,cy,0,360,8); {малюємо коло } setfillstyle(1,0); floodfill(cx,cy,7); {зафарбовуємо його чорним кольором } setcolor(4); line(x1,y1,x2,y2); line(x3,y3,x4,y4); {обчислюємо координати контрольних точок} xn1:=x1*cos(k)+y1*sin(k) + cx*(1-cos(k))-cy*sin(k); yn1:=y1*cos(k)-x1*sin(k) + cy*(1-cos(k))+cx*sin(k); xn2:=x2*cos(k)+y2*sin(k) + cx*(1-cos(k))-cy*sin(k); yn2:=y2*cos(k)-x2*sin(k) + cy*(1-cos(k))+cx*sin(k); xn3:=x3*cos(k)+y3*sin(k) + cx*(1-cos(k))-cy*sin(k); yn3:=y3*cos(k)-x3*sin(k) + cy*(1-cos(k))+cx*sin(k); xn4:=x4*cos(k)+y4*sin(k) + cx*(1-cos(k))-cy*sin(k); yn4:=y4*cos(k)-x4*sin(k) + cy*(1-cos(k))+cx*sin(k); x1:=trunc(xn1); y1:=trunc(yn1); x2:=trunc(xn2); y2:=trunc(yn2); x3:=trunc(xn3); y3:=trunc(yn3); x4:=trunc(xn4); y4:=trunc(yn4); cx:=cx-1; {змiна однiєї з координат центра кола } delay(35000); {затримка перед продовженням циклу } setcolor(7); bar(100,100,500,500); {замальовуємо область } end; {РУХ ПО СТОРОНI BA} while cy<260 do begin setfillstyle(1,8); bar(300,200,360,260); {малюємо зафарбований прямокутник } setcolor(7); arc(cx,cy,0,360,8); {малюємо коло } setfillstyle(1,0); floodfill(cx,cy,7); {зафарбовуємо його чорним кольором } setcolor(4); line(x1,y1,x2,y2); line(x3,y3,x4,y4); {обчислюємо координати контрольних точок} xn1:=x1*cos(k)+y1*sin(k) + cx*(1-cos(k))-cy*sin(k); yn1:=y1*cos(k)-x1*sin(k) + cy*(1-cos(k))+cx*sin(k); xn2:=x2*cos(k)+y2*sin(k) + cx*(1-cos(k))-cy*sin(k); yn2:=y2*cos(k)-x2*sin(k) + cy*(1-cos(k))+cx*sin(k); xn3:=x3*cos(k)+y3*sin(k) + cx*(1-cos(k))-cy*sin(k); yn3:=y3*cos(k)-x3*sin(k) + cy*(1-cos(k))+cx*sin(k); xn4:=x4*cos(k)+y4*sin(k) + cx*(1-cos(k))-cy*sin(k); yn4:=y4*cos(k)-x4*sin(k) + cy*(1-cos(k))+cx*sin(k); x1:=trunc(xn1); y1:=trunc(yn1); x2:=trunc(xn2); y2:=trunc(yn2); x3:=trunc(xn3); y3:=trunc(yn3); x4:=trunc(xn4); y4:=trunc(yn4); cy:=cy+1; {змiна однiєї з координат центра кола } delay(35000); {затримка перед продовженням циклу } setcolor(7); bar(100,100,500,500); {замальовуємо область } end; {РУХ ПО СТОРОНI AD} while cx<360 do begin setfillstyle(1,8); bar(300,200,360,260); {малюємо зафарбований прямокутник } setcolor(7); arc(cx,cy,0,360,8); {малюємо коло } setfillstyle(1,0); floodfill(cx,cy,7); {зафарбовуємо його чорним кольором } setcolor(4); line(x1,y1,x2,y2); line(x3,y3,x4,y4); {обчислюємо координати контрольних точок} xn1:=x1*cos(k)+y1*sin(k) + cx*(1-cos(k))-cy*sin(k); yn1:=y1*cos(k)-x1*sin(k) + cy*(1-cos(k))+cx*sin(k); xn2:=x2*cos(k)+y2*sin(k) + cx*(1-cos(k))-cy*sin(k); yn2:=y2*cos(k)-x2*sin(k) + cy*(1-cos(k))+cx*sin(k); xn3:=x3*cos(k)+y3*sin(k) + cx*(1-cos(k))-cy*sin(k); yn3:=y3*cos(k)-x3*sin(k) + cy*(1-cos(k))+cx*sin(k); xn4:=x4*cos(k)+y4*sin(k) + cx*(1-cos(k))-cy*sin(k); yn4:=y4*cos(k)-x4*sin(k) + cy*(1-cos(k))+cx*sin(k); x1:=trunc(xn1); y1:=trunc(yn1); x2:=trunc(xn2); y2:=trunc(yn2); x3:=trunc(xn3); y3:=trunc(yn3); x4:=trunc(xn4); y4:=trunc(yn4); cx:=cx+1; {змiна однiєї з координат центра кола } delay(35000); {затримка перед продовженням циклу } setcolor(7); bar(100,100,500,500); {замальовуємо область } end; {ПЕРЕХIД ДО КОНТРОЛЬНИХ КООРДИНАТ} x1:=352; x2:=368; x3:=360; x4:=360; y1:=260; y2:=260; y3:=252; y4:=268; {РУХ ПО СТОРОНI DC} while cy>200 do begin setfillstyle(1,8); bar(300,200,360,260); {малюємо зафарбований прямокутник } setcolor(7); arc(cx,cy,0,360,8); {малюємо коло } setfillstyle(1,0); floodfill(cx,cy,7); {зафарбовуємо його чорним кольором } setcolor(4); line(x1,y1,x2,y2); line(x3,y3,x4,y4); {обчислюємо координати контрольних точок} xn1:=x1*cos(k)+y1*sin(k) + cx*(1-cos(k))-cy*sin(k); yn1:=y1*cos(k)-x1*sin(k) + cy*(1-cos(k))+cx*sin(k); xn2:=x2*cos(k)+y2*sin(k) + cx*(1-cos(k))-cy*sin(k); yn2:=y2*cos(k)-x2*sin(k) + cy*(1-cos(k))+cx*sin(k); xn3:=x3*cos(k)+y3*sin(k) + cx*(1-cos(k))-cy*sin(k); yn3:=y3*cos(k)-x3*sin(k) + cy*(1-cos(k))+cx*sin(k); xn4:=x4*cos(k)+y4*sin(k) + cx*(1-cos(k))-cy*sin(k); yn4:=y4*cos(k)-x4*sin(k) + cy*(1-cos(k))+cx*sin(k); x1:=trunc(xn1); y1:=trunc(yn1); x2:=trunc(xn2); y2:=trunc(yn2); x3:=trunc(xn3); y3:=trunc(yn3); x4:=trunc(xn4); y4:=trunc(yn4); cy:=cy-1; {змiна однiєї з координат центра кола } delay(35000); {затримка перед продовженням циклу } setcolor(7); bar(100,100,500,500); {замальовуємо область } end; closegraph; {вихiд з графiчного режиму } END. 5. ВИСНОВКИ Щоб виконати цю програму, необхідно знати і вміти використовувати матриці перетворень, вміти використовувати в мові Turbo Pascal цикли, а також – знати необхідні команди і процедури при роботі з графічним режимом. Написання програми дає особливо добрий практикум в галузі роботи з графічним режимом. Виконавши цю прогаму, можна навчитися будувати рухомі зображення в середовищі Turbo Pascal, використовуючи матриці перетворень.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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