на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Програмування трьохмірної графіки та анімації засобами Turbo Pascal

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

Міністерство освіти і науки України

Курсова робота:

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

ЗМІСТ

ВСТУП

РОЗДІЛ І. МАТЕМАТИЧНЕ МОДЕЛЮВАННЯ ТРЬОХМІРНОЇ ГРАФІКИ ТА АНІМАЦІЇ

1.1 Операції над векторами й матрицями

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

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

1.4 Методи програмування динамічних зображень

РОЗДІЛ ІІ. ПРАКТИЧНА РЕАЛІЗАЦІЯ 3D ОБ'ЄКТІВ ТА ДИНАМІЧНИХ ПОДІЙ

2.1 Модуль обробки 3d об'єктів Graph3d

2.2 Відображення об'ємних фігур в різних проекціях

2.3 Побудова поверхонь

2.4 Відсікання невидимих ліній, використання модуля Graph3d

ВИСНОВКИ

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

ВСТУП

Комп'ютерна графіка з'явилась достатньо давно - вже у 60-х минулого століття існували повноцінні програми роботи з графікою. Сьогодні прийнято користуватися термінами "комп'ютерна графіка" і "комп'ютерна анімація". Поняття "комп'ютерна графіка" об'єднує всі види робот зі статичними зображеннями, "комп'ютерна анімація" має справи з зображеннями, які динамічно змінюються [21].

Сучасний етап розвитку технологій обумовив швидкий ріс графічних додатків, що використовують технологію трьохвимірного відображення. Це і тривимірне телебачення, тривимірні програми моделювання різноманітних пристроїв, деталей. Тривимірність швидко увійшла в наше життя у вигляді мультфільмів, фільмів із героями створеними у редакторах об'ємних фігур. Іграшки на даний час все більше і більше вражають нас своєю реалістичністю, і почасти дуже важко знайти різницю між реальністю і вигадкою, реалізованою на екранах монітора і телевізора [24].

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

На даний час основними є дві бібліотеки для роботи із графікою, це бібліотека DirectX та OpenGL. Хоча вони і по різному реалізовані, виконують практично ідентичні функції. Програмування 3d-графіки з їх допомогою значно полегшується, необхідно знати, звичайно, основні команди, поняття і вміти ними користуватися. Проте вони не надають учням основних понять у програмуванні. Так, вони служать в певному роді графічним двигуном, що обробляє дані, проте не надає відповіді, як же проходить перехід від 3d до 2d координат, яким чином відбувається обрахунок нових координат вершини тетраедра при його повороті, як відбувається його масштабування. Всі ці поняття вже закладені у бібліотеці і вважаються зрозумілими [22].

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

Метою курсової роботи є надати основні математичні поняття по роботі із 3d-графікою. Вказати шляхи реалізації основних алгоритмів, як то поворот, рух, проекція та відображення та розробити наочні приклади побудови фігур.

Актуальність мети - випливає із того, що програмування 3d-об'єктів є перспективним напрямком у створенні ігор, технічного ПЗ для створення об'ємних фігур, середовища. Набуття навиків у створенні об'ємної графіки передбачає взаємодію із математичними методами, їх розумінням та можливістю застосування на практиці. Показує зв'язок математики та інформатики.

Об'єкт роботи: є прикладне програмне забезпечення, середовище програмування та засоби математичного моделювання.

Предмет роботи: трьохмірна графіка та її алгоритми програмування.

Мета роботи: є розробка методичного матеріалу, реалізованих програмних продуктів з програмування графічних процесів.

РОЗДІЛ І. МАТЕМАТИЧНЕ МОДЕЛЮВАННЯ ТРЬОХМІРНОЇ ГРАФІКИ ТА АНІМАЦІЇ

1.1 Операції над векторами й матрицями

Вирішуючи завдання відображення складних геометричних об'єктів у просторі, необхідно встановити відповідність між точками поверхні геометричного об'єкта й точками плоскої поверхні екрана дисплея. При цьому деякі частині поверхні можуть бути не видимі, можуть відрізнятися умови висвітлення поверхонь, їхні кольори, відбивна здатність і т.п. Все це варто враховувати для побудови реалістичних зображень. Зображення можуть бути нерухомими (статичними) або мінливими в часі (динамічними).

Розглянемо основні математичні поняття, які дозволяють задати положення точки в просторі, ребра об'єкта, його поверхню і властивість поверхні. Положення точки в просторі задається за допомогою координат. Значення координат залежать від вибору системи координат і точки початку її відліку. В прямокутній (декартовій системі) координат положення точки задається трьома числами -- координатами x, y та z (Рис. 1.1).

Ці координати є компонентами вектора, що йде з початку системи координат у задану точку:

Рис. 1.1. Декартова система координат

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

Таким чином, положення в просторі точки описується її координатами, що записується як . Взаємне розташування осей в ортогональній системі координат у тривимірному просторі може бути двох видів. Проведемо вісь з ліва на право, а вісь знизу вгору, як показано на Рис. 1.2.

Рис. 1.2. Лівостороння й правобічна системи координат

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

Рис. 1.3. Визначення лівосторонньої системи координат по лівій руці

Будь-яка точка в 3d програмуванні задається набором з 3-х координат по ортогональним (взаємноперпендикулярним) осях (x, y, z) відповідно [15].

Точками задаються також координати вершин об'єкта.

Відрізок - частина прямої, що з'єднує дві точки. Задається координатами кінців. Взаємне положення двох точок також задається вектором, спрямованим з однієї точки в іншу.

Нехай є крапка A з координатами (Ax, Ay, Az), і точка B з координатами (Bx, By, Bz),тоді вектор з початком у точці A і кінцем у точці B є

(1.1)

Норма (довжина) вектора визначається в такий спосіб:

. (1.2)

Довжина вектора є корінь суми квадратів його координат, тобто відстань від початку координат до вершини.

Сума векторів - це вектор, координати якого є сумою відповідних координат обох векторів:

. (1.3)

Різниця векторів - це вектор, координати якого є різницею відповідних координат обох векторів.

Добуток вектора А і скаляра а - це вектор з наступними компонентами:

(1.4)

Скалярний добуток двох векторів - число, що визначається в такий спосіб:

. (1.5)

або

. (1.6)

де b - кут між векторами.

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

(1.7)

Векторний добуток двох векторів -- це вектор, компоненти якого рівні

. (1.8)

Векторний добуток спрямований перпендикулярно обом співмножникам.

Перенесенням називається наступне перетворення:

(1.9)

Де - коефіцієнти перенесення по відповідних осях [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 Використання проекцій

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

Страницы: 1, 2, 3



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.