Вступ
Для кращого сприйняття форми об'єкта необхідно мати йогозображення в тривимірному просторі. У багатьох випадках наочне представленняпро об'єкт можна одержати шляхом виконання операцій обертання і переносу, атакож побудови проекцій. Введемо однорідні координати. Точка в тривимірномупросторі /> задається чотиримірнимвектором /> чи />. Перетворення з одноріднихкоординат описується співвідношеннями
/> (4.1)
деT — деяка матриця перетворення.
/>
Ця матриця може бути представлена у вигляді 4 окремих частин
/>
Матриця 3x3 здійснює лінійне перетворення у виді змінимасштабу, зсуву й обертання. Матриця-рядок 1х3 робить перенос, аматриця-стовпець 3х1 — перетворення в перспективі. Останній скалярний елементвиконує загальну зміну масштабу. Повне перетворення, отримане шляхом впливу навектор положення матрицею 4x4 і нормалізації перетвореного вектора, будемоназивати білінійним перетворенням. Воно забезпечує виконання комплексу операційзсуву, часткової зміни масштабу, обертання, відображення, переносу, а такожзміни масштабу зображення в цілому.
Тривимірна зміна масштабу
Діагональні елементи основної матриці перетворення 4х4здійснюють часткову і повну зміну масштабу. Розглянемо перетворення
/>,(4.2)
яке робить часткову зміну масштабу. На рис.4.1а показанеперетворення паралелепіпеда в одиничний куб шляхом зміни масштабу. Загальназміна масштабу виходить за рахунок використання четвертого діагональногоелемента, тобто
/>. (4.3)
Це перетворення ілюструє рис.4.1б. Такий же результат можнаотримати при рівних коефіцієнтах часткових змін масштабів. У цьому випадкуматриця перетворення повинна бути рівна
/>. (4.4)
Вектори положення точок А і В рівні /> і />.
/>
Рис.4.1. Тривимірні перетворення iз зміною масштабів.
Тривимірний зсув
Недіагональні елементи верхньої лівої підматриці 3х3 відзагальної матриці перетворення розміру 4х4 здійснюють зсуви в трьох вимірах,тобто
/>. (4.5)
Простий тривимірний зсув одиничного куба показаний нарис.4.1в.
Тривимірні обертання
Раніше було показано, що матриця 3х3 забезпечувала комбінаціюоперацій зміни масштабу і зсуву. Однак, якщо визначник матриці 3х3 дорівнює +1,то має місце чисте обертання навколо початку координат. Перед розглядомзагального випадку тривимірного обертання навколо довільної осі дослідимокілька окремих випадків. При обертанні навколо осі х розміри уздовж осі хне змінюються. Таким чином, матриця перетворень буде мати нулі в першому рядкуі першому стовпці, за винятком одиниці на головній діагоналі. Це приводить доматриці перетворення, що відповідає повороту на кут /> навколоосі х і задається співвідношенням
/> (4.6)
Обертання вважається додатнім, тобто за годинниковоюстрілкою, якщо дивитися з початку координат вздовж осі обертання. На рис.4.2апоказаний поворот на -90° навколо осі x.
Для обертання на кут Ф навколо осі y — нуліставлять у другому рядку і другому стовпці матриці перетворення, за виняткомодиниці на головній діагоналі. Повна матриця задається виразом
/> (4.7)
/>
Рис.4.2. Тривимірні обертання.
На рис.4.2б показаний поворот на 90° навколо осі y. Аналогічно матриця перетворення дляобертання на кут /> навколо осі zмає вид
/> (4.8)
Аналіз визначників для матриць (4.6)-(4.8) показує, що длябудь-якої матриці обертання детермінант дорівнює +1.
Тому що обертання описуються множенням матриць, то тривимірніобертання некомутативні, тобто порядок множення буде впливати на кінцевийрезультат. Для того щоб показати це, розглянемо обертання навколо осі х,за яким слідує обертання на такий же кут навколо осі y. Використовуючи рівняння (4.6) і(4.7) при />= Ф, одержимо
/>
Рис.4.3. Некомутативність тривимірних обертань.
/> (4.9)
Зворотна послідовність дій, тобто обертання навколо осі y і наступне за ним обертання на такийже кут навколо осі x при />= Фдає
/> (4.10)
На рис.4.3 для лівого верхнього зображення штриховими лініямипоказані результати двох послідовних обертань, описаних матрицею перетворення(4.9). Зображення, отримане обертаннями, виконаними в іншій послідовності,описаними рівняннями (4.10), показані суцільною лінією. З порівняння отриманихзображень видно, що при зміні порядку обертання виходять різні результати.
Часто буває необхідно обертати зображення навколо однієї зосей декартової системи координат.
Відображення в просторі
Іноді потрібно виконати дзеркальне відображення тривимірногозображення. У трьох вимірах найпростіше відображення здійснюється щодо площини.Для відображення без зміни масштабів необхідно, щоб визначник перетворення дорівнював-1,0. При відображенні щодо площини xy змінюється тільки знак координати z.Отже, матриця перетворення для відображення щодо площини xy має вигляд
/> (4.11)
Відображення одиничного куба щодо площини ху показане нарис.4.4. Для відображення щодо площини уz
/> (4.12)
/>
Рис.4.4. Просторове відображення щодоплощини xy.
/> (4.12)
а для відображення щодо площини xz
/> (4.13)
Відображення щодо інших площин можна одержати шляхомкомбінації обертання і відображення.
Просторовий перенос
Тривимірний лінійний перенос зображення задається виразом
/> (4.14)
Післяперемножування одержимо
/> (4.15)
Тривимірне обертання навколодовільної осі
тривимірне обертання фігура відображення
Метод двовимірного плоского обертання навколо довільної осібув розглянений раніше. Узагальненням цього методу є спосіб обертання навколодовільної осі в тривимірному просторі. Як і для плоского випадку, розгляненапроцедура полягає в переносі зображення і заданої осі обертання, що забезпечуєобертання навколо осі, що проходить через початок координат. Метод тривимірногообертання полягає в лінійному переносі, обертанні навколо початку координат ізворотньому лінійному переносі у вихідне положення. Якщо вісь, навколо якоївиконується обертання, проходить через точку А = />,то матриця перетворення визначається наступним виразом:
/> (4.16)
де елементи матриці обертання R розміру 4х4визначаються в загальному випадку співвідношенням
/>
/> (4.17)