Смекни!
smekni.com

Програмування трьохмірної графіки та анімації засобами Turbo Pascal (стр. 2 из 5)

Де

– коефіцієнти перенесення по відповідних осях [15].

Матрицеюназивають таблицю, елементами якої є числа. Визначено операції додавання й множення матриць. Будемо позначати елемент матриці змінною із двома індексами, що визначають номер рядка й номер стовпця: aij.

Результат дії матриці А на вектор С – теж вектор (позначимо його В), компоненти якого розраховуються в такий спосіб:

(1.10)

Добуток двох матриць А і С є матрицею В, елементи якої обчислюються по формулі

(1.11)

Сума двох матриць також є матрицею, елементи якої сума додавання відповідних елементів матриць-доданків. При обчисленні суми й добутку матриць повинна дотримуватися відповідність розмірів доданків або співмножників.

Зворотноюстосовно матриці А, називається матриця А-1, що задовольняє умові А-1A=АА-1=I, де I – одинична матриця, тобто матриця, у якої на головній діагоналі розміщені одиниці (ikk=1), а всі інші елементи дорівнюють нулю.

Особливу роль у машинній графіці відіграють перетворення – обертання. При описі поворотів тривимірних об’єктів у комп’ютерній графіці зазвичай використається права система координат. Нехай одиничні вектори

,
і
спрямовані вздовж координатних осей 0x, 0y і 0z. У правій системі координат поворот від вектора
до вектора
на 900 відповідає повороту гвинта із правим різьбленням, а напрямок вектора
збігається з напрямком переміщення гвинта. Повороти щодо кожної координатної осі на кут а описуються матрицями повороту:

(1.12)

(1.13)

(1.14)

Кут повороту вважається позитивним, якщо обертання відповідає позитивному напрямку осі за правилом правого гвинта.

Координати вектора, отриманого поворотом вихідного щодо осі х, виходять у результаті дії на нього матриці повороту:

(1.15)

Поворот вектора навколо довільної осі, що проходить через точку початку координат, можна звести до цих трьох типів повороту. Зміна координат вектора при поворотах системи координат щодо її осей описується матрицями, зворотними матрицям Rx, Ry, Rz.

Довільна вісь обертання задається координатами:

(1.16)

Вона утворює із віссю z кут φ, а її проекція на площину х0у утворює із віссю х кут θ (Рис. 1.4).

Рис. 1.4. Поворот навколо довільної осі обертання

Поворот навколо довільного вектора можна описати матрицею повороту:

, (1.17)

де

(1.18)

(1.19)

(1.20)

(1.21)

(1.22)

Перетворення зрушення можна записати у формі матричного множення, якщо додати в запис вектора четвертий компонент, який дорівнює одиниці (такі координати називаються однорідними)

(1.23)

і перейти до матриць 4x4:

(1.24)

Матриця зрушення буде мати наступний вигляд:

. (1.25)

Перетворення загального виду, тобто сполучення повороту зі зрушенням, може бути представлене у вигляді матриці:

.(1.26)

При використанні однорідних координат матриця перетворення масштабування виглядає так:

(1.27)

1.2 Використання проекцій

При побудові реалістичних об’ємних зображенні варто враховувати ефект перспективи, що полягає в тому, що паралельні лінії, що віддаляються від спостерігача, на відстані здаються людині збіжними.

З спостерігачем пов’язана точка спостереження й напрямок спостереження. Ефект перспективи обернено-пропорційний відстані від об’єкта до точки спостереження. Якщо око розташоване далеко від об’єкту, то паралельні лінії про об’єкта будуть здаватися паралельними й спостерігачеві. Якщо приблизитися до об’єкта на досить близьку відстань, ефект перспективи підсилиться

Положення об’єкта задається в системі світових координат. При побудові зображення тривимірного об’єкта світові координати його точок треба перетворювати у двовимірні екранні координати. Проектування – це перехід від світових координат до екранних [25].

Перехід відбувається у два етапи. Є система видових координат, пов’язана зі спостерігачем. Світові координати перетворяться у видові за допомогою видового перетворення, потім видові координати перетворюються в екранні. Це – перспективне перетворення.

Тип проектування на плоску, а не викривлену поверхню, де як в якості проекторів використаються прямі. а не скривлені лінії, називається плоскою геометричною проекцією. Плоскі геометричні проекції діляться на два види: центральні й паралельні. Якщо центр проекції перебуває на визначеній відстані від проекційної площини, то проекція - центральна. Якщо ж центр проекції віддалений на нескінченність, то проекція - паралельна.

Точкою сходження називається точка перетинання центральних проекцій будь-якої сукупності паралельний прямих, які не паралельні проекційної площини. Існує нескінченна множина точок сходження. Точка сходження називається головної, якщо сукупність прямих паралельна одній з координатних осей. Залежно від того, скільки координатних осей перетинає проекційну площину розрізняють одно-, двох- і трьохточкові проекції.

Прямокутні координати точки спостереження у світовій системі координат зв’язані зі сферичними координатами (ρ, φ, θ) наступними співвідношеннями:

,(1.28)

(1.29)

(1.30)

(1.31)

Перетворення координат точки з світової системи координат у видову виконується за допомогою перетворення:

(1.32)

де V - матриця перетворення

(1.33)

У паралельних проекціях ігнорується видиме порушення пропорцій, що виникає внаслідок різної віддалі об’єкта та його частин до спостерігача. Це відповідає віддаленню точки спостереження на нескінченну відстань. При цьому паралельні геометричні лінії об’єкта залишаються паралельними й після проектування В перспективних проекціях ефект перспективи враховується [26].

Різновидність паралельної проекції – ортогональна проекція – отримуються ігноруванням z-координати після переходу у видову систему координат.

В ізометричній проекції осі х, у и z світової системи координат складають рівні кути із площиною екрана. Матриця ізометричної проекції має вигляд:

(1.34)

У диметричній проекції, що також відноситься до числа ортогональних, вісь z проектується на вісь v екранної системи координат, а проекції осей x і y складають заданий кут а з негативною й позитивною півосями осі u. Диметрична проекція включає ізометричну як частковий випадок [17].

У косокутній проекції осі y i z світової системи координат співпадають з осями u i v екранної системи, а проекція осі х становить заданий кут а з негативною півосю v.

1.3 Алгоритми видалення невидимих ребер та граней

При побудові непрозорих об’єктів варто враховувати, що деякі ділянки їхньої поверхні не видні спостерігачеві, тому що закриваються іншими частинами об’єкта.

Є різні алгоритми видалення невидимих частин. Деякі із них засновані на сортуванні граней по відстані від спостерігача. Нехай є дві грані, що перебувають на різній відстані від точки спостереження (Рис. 1.5).