Міністерство освіти і науки, молоді та спорту України
Національний університет “Львівська політехніка”
Кафедра “Автоматизовані системи управління”
/
Лабораторна робота №1
«Робота в декартовій системі координат»
з курсу Основи комп’ютерної графіки
Мета: Ознайомлення з основами комп‘ютерної графіки.
Перетворення точок
Розглянемо результати матричного
множення , що визначає точку Р, і матриці
перетворення 2х2 загального виду:
/
Дослідимо декілька часткових випадків.
1) а=d=1 і c=b=0. Змін не відбувається
/
2) d=1, b=c=0. Зміна масштабу по осі x
/
3) b=c=0. Зміна масштабу по осях x і y
/
4) b=c=0, d=1, a=-1. Відображення координат
відносно осі y
/
5) b=c=0, a=d<0. Відображення відносно початку координат
/
6) а=d=1, c=0. Зсув
/
Перетворення прямих ліній (відрізків)
Будь-яка пряма будується за допомогою двох точок, наприклад, А і В.
Нехай точки А і В задані координатами – А(0,1) і В(2,3).
Матриця ж перетворення, задана такими значеннями
/.
В результаті декартового добутку вектора-точки на матрицю перетворення одержимо:
/,
/ .
Тепер координати точок прямої мають вигляд такий А(3, 1) та В(11, 7). Результат показано на мал.
Обертання
Розглянемо плоский трикутник ABC. Нехай координати трикутника задані такими значеннями, А(3, 1), В(6, 1) та С(6, 4).
Матриця перетворення для повороту на 90° проти годинникової стрілки, виглядає так
/
Після декартового добутку одержимо матрицю:
/.
В результаті отримаємо трикутник
A*B*C*.
Матриця перетворення для повороту
на 180° проти годинникової стрілки,
виглядає так
/
Після декартового добутку одержимо матрицю:
/.
В результаті отримаємо трикутник
A*B*C*.
Матриця перетворення для повороту на 270° проти годинникової стрілки, виглядає так:
/ .
Після декартового добутку одержимо матрицю:
/
В результаті отримаємо трикутник А*B*C*.
Відображення визначається поворотом на 180° навколо осі, що лежить у площині х у. На простій мові це дзеркальне відображення трикутника.
1) Обертання навколо прямої y=x задається матрицею:
/.
Після декартового добутку одержимо матрицю:
/.
В результаті отримаємо трикутник А*B*C*.
2) Обертання навколо осі y=0
задається матрицею:
/.
Після декартового добутку
одержимо матрицю:
/.
В результаті отримаємо трикутник А*B*C*.
Зміна масштабу визначається значенням 2-х елементів головної діагоналі матриці. Якщо використовуємо матрицю
/,
то маємо збільшення в 2 рази. Якщо
значення елементів не рівні, то має місце
спотворення.
Нехай трикутник заданий
координатами А(1, 1), В(3, 1) та С(1, 3).
Тепер збільшимо трикутник в 3 рази.
/
В результаті отримаємо трикутник А*B*C*.
Двовимірний зсув і однорідні координати
Введемо третій компонент у вектори точок (x, y) і (x* y*) -
(x y 1) і (x* y* 1).
Матриця перетворення матиме вигляд:
/.
Таким чином,
/.
Константи m, n викликають зсув x* і y*
відносно x і y.
Матриця 3х2 не квадратна - вона не має
оберненої матриці.
Доповнимо матрицю перетворення до
квадратної
Порядок роботи
1. Побудуйте декартову систему координат.
2. Виведіть на панель можливість задання координат точок та матриці перетворення.
3. Здійсніть масштабування однієї поділки по осях OX та OY.
4. Побудуйте точку у декартовій системі координат. Здійсніть усі перетворення точок за допомогою матричних перетворень.
5. Побудуйте відрізок. Виведіть на панель можливість введення координат відрізка та матриці перетворення. Здійсніть перетворення відрізків.
6. Побудуйте трикутник. Здійсніть перетворення трикутника: обертання, відображення, масштабування, зсув.
/
Операція масштабування:
/
Операція зсування по у:
/
Операція зсування по х:
/
Симетрія відносно осі у:
/
Симетрія відносно початку координат:
/
/
Матриця перетворення відрізків:
1 2
1 4
5 1
=(11 6)
3 4
1 4
5 1
=(23 16)
/
Обертання трикутника:
1 1
1 4
3 4
0 1
−1 0
=
−1 1
−1 4
−3 4
1 1
1 4
3 4
0 1
1 0
=
1 1
1 4
3 4
Масштабування трикутника:
1 1
1 4
3 4
3 0
0 3
=
3 3
3 12
9 12
Зсув трикутника:
1 1
1 0
0 1
−5 −5
=(−4 −4)
1 4
1 0
0 1
−5 −5
=
−4 −1
3 4
1 0
0 1
−5 −5
=(−2 −1)
Висновок: Виконуючи дану лабораторну роботу я ознайомився з основами комп’ютерної графіки. Побудував точку у декартовій системі координат і здійснив усі перетворення точок за допомогою матричних перетворень. Також побудував відрізок та трикутник, здійснивши такі його перетворення, як: обертання, відображення, масштабування і зсув.