![]() КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
МатриціДля виконання перетворень векторів у просторі ми будемо використовувати матричний метод. Матрицею розмірності Надалі будемо використовувати скорочений запис для матриці: Спочатку введемо ряд операцій над матрицями й векторами. Нехай задані матриці Визначимо також операцію множення матриці на число. Результатом множення матриці Добутком двох матриць Добуток матриць некомутативно, тобто в загальному випадку Попередні визначення ми вводили для матриць довільної розмірності. Наступні операції будуть пов'язані з векторами, і ми будемо мати на увазі, що Якщо матриця Аналогічним образом визначається множення вектора на матрицю, тільки в цьому випадку вектор скалярно множиться на вектор-рядка матриці. Матриця виду називається одиничної й має наступні властивості: - - - Якщо для матриці - Якщо для матриць Завдяки операції множення матриці на вектор будь-яка матриця визначає перетворення в просторі, по якому кожному вектору зіставляється деякий інший по цілком певному законі. Відзначимо, що для геометричних перетворень зручно використовувати матриці розмірністю на одиницю більше, ніж розмірність простору, але про це докладніше мова йтиме в наступній главі. Геометричні перетворення (перенос, масштабування, обертання) Геометричні об'єкти на площині й у просторі можна піддавати ряду різних перетворень. Найбільш уживаними в завданнях комп'ютерної графіки є: - переміщення (паралельний перенос); - зміна розмірів (масштабування); - повороти навколо деякої крапки на площині або деякій осі в просторі (обертання). Надалі ми часто будемо ототожнювати крапки простору з радіус-вектором, обумовленим цією крапкою. Спочатку розглянемо перетворення на площині, або двовимірні перетворення. Паралельний перенос об'єкта зводиться до переміщення всіх його крапок на те саме відстань Масштабування об'єкта можна реалізувати шляхом множення координат всіх його крапок на деяке число. Нехай є крапки з координатами У випадку, коли Рис. 4.5. Масштабування зі збереженням кутів Рис. 4.6. Масштабування з перекручуванням кутів Обертання в площині переміщають крапки по дузі окружності, центр якої перебуває на початку координат. Розглянемо спочатку рух однієї крапки при повороті на кут Після повороту вектор буде становити кут
Можна показати, що при такому перетворенні зберігаються відстані між крапками, а отже, і кути між відрізками.
Рис. 4.7. Поворот на площині Рис. 4.8. Поворот у просторі У випадку тривимірного простору міркування, що стосуються переносу й масштабування, повністю аналогічні, тільки вони поширюються на третю координату крапок. З обертанням же інша справа, оскільки тут обертовий рух є переміщення уздовж поверхні сфери й поворот на якийсь кут щодо крапки не можна визначити однозначно. Але переміщення з однієї крапки сфери в іншу завжди можна здійснити послідовністю поворотів щодо осей координат, тому виведемо формули для цих трьох обертань. При повороті щодо осі Формули повороту щодо осі У всіх цих формулах варто звернути увагу на знаки, тому що вони залежать від того, який поворот уважається позитивним (у цьому випадку ми маємо справу із правою трійкою базисних векторів). Перетворення масштабування й повороту на площині й у просторі можна виразити за допомогою матриць. Якщо задані коефіцієнти масштабування
Двовимірний випадок виглядає подібним же чином. Поворот на площині можна здійснити за допомогою матриці
І нарешті, повороти в просторі щодо осей координат можна виконати за допомогою трьох матриць обертання
Неважко перевірити, що для матриць обертання справедливе співвідношення Для виконання послідовних поворотів навколо осей на кути Використання цієї матриці дасть помітну економію в обчисленнях у порівнянні з послідовними множеннями на кожну із трьох матриць обертання.
|