kniga
.pdfПриклад 2. Побудувати матрицю неоднорідного масштабування з коефіцієнтом a вздовж осі x та коефіцієнтом b уздовж осі y з центром у точці N(m, n).
Це перетворення реалізуємо за допомогою трьох перетворень:
1)переміщення точки на вектор N(–m, –n). Матрицею цього перетворення є матриця T– ;
2)розтягу вздовж координатних осей із коефіцієнтами a та b відповідно. Матриця D цього перетворення визначається формулою
(11.9);
3)перенесення одержаного результату на вектор N(m, n). Матриця T
цього перетворення має вигляд (11.10).
Перемножуючи ці матриці, одержуємо шукане перетворення
|
|
|
a |
0 |
0 |
|
(x′ y′ 1) = (x y 1) |
|
|
0 |
b |
0 |
|
|
|
. |
||||
|
|
(1 |
− a)m |
(1 −b)n 1 |
|
|
|
|
|
Аналогічно, виділяючи послідовність операцій перенесення, повороту та масштабування (ці перетворення описуються матрицями T, R, D), можна побудувати матрицю для будь-якого складного афінного перетворення. Тоді афінне перетворення об’єктів на площині можна здійснити так: якщо об’єкт задається сукупністю точок, то складаємо матрицю X однорідних координат точок цього об’єкта і цю матрицю множимо на матрицю складного афінного перетворення.
Розглянемо приклад симетричного відображення трикутника відносно прямої L.
Приклад 3. Нехай пряма L задається рівнянням y = x + 1, а однорідні координати A(1; 1; 1), B(6; 1; 1), C(6; 4; 1) задають координати вершин трикутника ABC. Побудувати трикутник, симетричний даному відносно прямої L.
Представимо перетворення симетрії точки відносно прямої у вигляді послідовності простіших афінних перетворень (рис. 11.6):
•переміщення лінії та трикутника так, щоб лінія L пройшла через початок координат. Це перетворення задає матриця T із парамет-
рами (0, –1);
•поворот лінії та об’єкта відносно початку координат до збігу лінії L
звіссю x. Це перетворення задає матриця R із кутом ϕ = − π4 (у
від’ємному напрямку);
•відображення відносно координатної осі x;
•обернений поворот відносно початку координат;
211
• паралельне перенесення у вихідне положення.
Останні три перетворення задаються матрицями Ref, R(–ϕ) та T(0, 1), відповідно. У матричному вигляді перетворення симетрії має вигляд
(x′ y′ 1) = (x y 1) T(0, –1) R( − π4 ) Ref R( π4 ) T(0, 1).
Для симетрії трикутника ABC відносно прямої L маємо
x1′x2′x3′
1
×00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
2 |
|
|
|
y′ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
− |
0 |
|
|
||
1 |
|
1 1 1 |
|
1 0 0 |
|
2 |
2 |
|
|
|||||||||||
1 |
|
|
|
|
|
|
|
0 1 0 |
|
|
|
2 |
|
2 |
0 |
|
× |
|||
y2′ |
1 |
= |
6 1 1 |
|
|
|
2 |
|
2 |
|
||||||||||
y3′ |
|
|
|
|
|
|
|
0 −1 1 |
|
|
|
1 |
|
|
||||||
1 |
|
|
6 4 1 |
|
|
|
0 |
|
0 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
0 0 |
|
|
2 |
2 |
|
1 0 0 |
0 2 1 |
|
|||||||||||
−1 0 |
|
|
− |
2 |
2 |
0 |
|
|
0 1 0 |
|
|
|
|
|
|
|||||
|
|
2 |
2 |
|
|
|
= |
0 7 1 . |
||||||||||||
|
0 1 |
|
|
|
|
|
|
0 1 1 |
|
|
|
|
|
|
||||||
|
|
|
|
0 |
0 1 |
|
|
|
|
3 7 1 |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Отже, декартові координати вершин симетричного трикутника
A′B′C′ мають значення A′(0; 2), B′(0; 7), C′(3; 7).
Рис. 11.6. Побудова симетричного трикутника
212
11.3. Афінні перетворення в просторі
Розглянемо тепер тривимірний випадок – 3D-перетворення простору. Всі перетворення будемо здійснювати в правосторонній системі координат Оxyz, тобто в системі координат, в якій із кінця осі z поворот від осі x до осі y бачимо проти годинникової стрілки. Якщо з вершини z поворот від x до y видно за годинниковою стрілкою, то така система координат називається лівосторонньою. У тривимірному випадку можна ввести однорідні координати так, що декартовим координатам (x, y, z) відповідатиме вектор (hx, hy, hz, h), h ≠ 0, координати якого визначаються однозначно з точністю до множника h. Запропонований підхід (введення однорідних координат) дає можливість використовувати
матричний запис всіх афінних перетворень у просторі, тобто у вигляді
(x′ y′ z′ 1) = (x y z 1) А,
де А – матриця афінного перетворення, для якої detА ≠ 0.
Зауважимо, що у випадку detА = 0 перетворення А називається про-
ективним.
Розглянемо елементарні перетворення в тривимірному просторі і побудуємо відповідні їм матриці перетворень.
а) На відміну від 2D-випадку, в 3D-просторі визначаються три основні повороти: відносно осі x, відносно осі y, відносно осі z. При повороті точки в просторі відносно осей правосторонньої системи координат додатні напрями поворотів показані на рис. 11.7. Тобто додатними вважаються повороти від x до y , від y до z, від z до x.
y
Рис. 11.7. Додатні напрями поворотів
x
O
z
Поворот простору відносно осі z на кут χ проти годинникової стрілки відповідає додатному повороту в площині xy (якщо дивитися з кінця вектора z), z-координата залишається при цьому незмінною. Фактично поворот проходить у площинах, перпендикулярних осі z, тому матриця такого повороту одержується з матриці двовимірного повороту і має вигляд