Визначення основних математичних понять по роботі із 3D-графікою і операцій над векторами і матрицями. Алгоритм видалення невидимих ребер та граней при побудові непрозорих об"єктів за допомогою модуля Graph 3D. Методи програмування анімації і спрайтів.
При низкой оригинальности работы "Програмування трьохмірної графіки та анімації засобами Turbo Pascal", Вы можете повысить уникальность этой работы до 80-100%
Компютерна графіка зявилась достатньо давно - вже у 60-х минулого століття існували повноцінні програми роботи з графікою. Сьогодні прийнято користуватися термінами "компютерна графіка" і "компютерна анімація". Поняття "компютерна графіка" обєднує всі види робот зі статичними зображеннями, "компютерна анімація" має справи з зображеннями, які динамічно змінюються [21]. Розвитку трьохмірного графічного проектування, в першу чергу передувало створення нових потужних процесорів, відеокарт та іншого апаратного забезпечення, що дозволяло швидше обробляти більші масиви даних, та відображення їх у реальному часі. Програмування 3d-графіки з їх допомогою значно полегшується, необхідно знати, звичайно, основні команди, поняття і вміти ними користуватися.В прямокутній (декартовій системі) координат положення точки задається трьома числами - координатами x, y та z (Рис. Ці координати є компонентами вектора, що йде з початку системи координат у задану точку: Рис. Існує також легкий спосіб визначення виду системи координат по правій або лівій руці, як показано на Рис. Будь-яка точка в 3d програмуванні задається набором з 3-х координат по ортогональним (взаємноперпендикулярним) осях (x, y, z) відповідно [15]. Проекція вектора на вектор - це вектор, що має той самий або протилежний напрямок, що й вектор, на який проводиться проектування.При побудові реалістичних обємних зображенні варто враховувати ефект перспективи, що полягає в тому, що паралельні лінії, що віддаляються від спостерігача, на відстані здаються людині збіжними. Ефект перспективи обернено-пропорційний відстані від обєкта до точки спостереження. Якщо око розташоване далеко від обєкту, то паралельні лінії про обєкта будуть здаватися паралельними й спостерігачеві. При побудові зображення тривимірного обєкта світові координати його точок треба перетворювати у двовимірні екранні координати. Якщо центр проекції перебуває на визначеній відстані від проекційної площини, то проекція - центральна.При побудові непрозорих обєктів варто враховувати, що деякі ділянки їхньої поверхні не видні спостерігачеві, тому що закриваються іншими частинами обєкта. Це означає, що для визначення видимості даної грані рівняється її взаємне розташування з усіма іншими гранями в тривимірній сцені. Наприклад, нехай кількість граней у тривимірній сцені , тоді час роботи алгоритмів цього класу порядку 1 000 000 операцій [11]. Наприклад, для екранного розширення 320 200 точок, 64000, тоді кількість операцій для 1000 граней буде порядку 64 000 000. Нехай задані координати вершин першої грані і другої грані .Обчислюються координати середніх точок граней: , (1.35)Анімацією називають вивід що змінюється, динамічного зображення. Ілюзію зображення, що рухається, створює перегляд послідовності нерухомих зображеннь-кадрів, що показують різні фази руху. Щоб вивести на екран дисплея динамічне зображення, треба запрограмувати вивід послідовності кадрів. Якщо кожний кадр містить складне зображення, що складається з великої кількості графічних елементів, вирішити проблему швидкого виведення кадрів на екран непросто. Незважаючи на простоту зображень, очевидним виявляється мерехтіння зображення і його "посмикування" при перемальовуванні, Так можна використати такий метод, що виводить поверхню задавши рівняння: (1.38) де а - амплітуда, a t - параметр, що грає роль часу.Розглянемо більш детально даний модуль: Перш за все, в ньому оголошено глобальні зміні, які відповідатимуть за координати точки в просторі, на екрані: type vector=array[1..3] of Real; Даний модуль містить ряд функцій, а саме, функції Procedure open_graph та Procedure close_graph відповідають за ініціалізацію та вихід із графічного режиму. Процедура Procedure out_text_XY(ss: String; x,y:integer; color: Word) відповідає за відображення текстового рядка заданим кольором за відповідними координатами. Процедура Procedure put_picxel(d2:Toch2d; color: Word) за координатами точки у двохвимірному просторі за заданим кольором відображає її на екран. Процедура Procedure norm_line(d2_0,d2_1:Toch2d; color:word) за координатами 2 точок у двохвимірному просторі за заданим кольором будує на екран лінію.Для розуміння вигляду фігур у різних проекціях побудовано каркас тетраедра із виведенням його у диметричній, ізометричній та ортогональній проекціях. Тетраедр задається чотирма своїми вершинами і почергово виводиться на екран. Всі вершини зображення тетраедра зєднуються лініями. Щоб вивести зображення тетраедра в заданій проекції, необхідно обрахувати значення екранних координат і провести відрізки прямих. Зображення тетраедра виводиться в ізометричній, косокутній і диметричній проекціях, причому спочатку виводиться статичне зображення, а вже потім воно перемальовується в циклі по куту проектування: d3:array[1..4] of Toch3d;Для побудови поверхні була використана формула 1.38 і показана можливість її виведення 2 способами, стандартними засобами та із використанням сторінки відеопамяті. function f(x,y: Real): Real;
План
ЗМІСТ
ВСТУП
РОЗДІЛ І. МАТЕМАТИЧНЕ МОДЕЛЮВАННЯ ТРЬОХМІРНОЇ ГРАФІКИ ТА АНІМАЦІЇ
1.1 Операції над векторами й матрицями
1.2 Використання проекцій
1.3 Алгоритми видалення невидимих ребер та граней
1.4 Методи програмування динамічних зображень
РОЗДІЛ ІІ. ПРАКТИЧНА РЕАЛІЗАЦІЯ 3D ОБЄКТІВ ТА ДИНАМІЧНИХ ПОДІЙ
2.1 Модуль обробки 3d обєктів Graph3d
2.2 Відображення обємних фігур в різних проекціях
2.3 Побудова поверхонь
2.4 Відсікання невидимих ліній, використання модуля Graph3d
ВИСНОВКИ
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы