Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсова.doc
Скачиваний:
15
Добавлен:
01.05.2015
Размер:
373.76 Кб
Скачать

1.3. Основні принципи перетворення графічних об’єктів

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

1.3.1. Загальний вигляд 3D- афінних перетворень [6].

На початку введемо однорідні координати для деякої 3D- точки  М(x, y, z): (x, y, z, 1) = (hx, hy, hz, h) = (x1, x2, x3, x4), де xi, i=1..4, не всі рівні нулю. Загальний вигляд 3D- афінних перетворень буде наступний

Запишемо цей вираз у матричному вигляді: X=X*[A], де X=(x1, x2, x3, x4), a [A] – матриця системи, яка задає загальний вигляд 3D- афінних перетворень.

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

1.3.2. Елементарні 3D-афінні перетворення:

1)Обертання навколо координатних вісей

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

 

  

 

2) Розтяг(стиснення) вздовж координатних вісей [6].

Задається своїм центром у початку координат та невід’ємними коефіцієнтами розтягу (стиснення)  вздовж координатних вісей OX, OY та OZ, відповідно. Записується, як X^=X*DIL, де

3) Відображення відносно координатних площин. Ці перетворення задаються наступними матрицями:

  

4)  Перенесення на вектор t=(a,b,c). У матричному вигляді записується так:

Тепер відмітимо, що загальний вигляд матриці 3D- афінного перетворення буде

,

де в класичній матриці [A33] містяться елементи, які задані операціями повороту, відображення, розтягу - зтиснення, а три елементи четвертого рядка задаються переносом.

1.3.3. Проекції(паралельні та центрові) [6].

В комп’ютерній графіці для зображення об’єктів на площині використовується паралельне та центральне  проектування.

Паралельне проектування, перпендикулярне площині, що співпадає з однією із координатних площин (або паралельній їй) дасть ортографічну проекцію. Матриця проектування вздовж вісі ОХ на площину YOZ має вигляд:

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

Аналогічно можна отримати матриці проектування вздовж інших координатних вісей.

1.4. Сучасні засоби візуалізації графічних об’єктів

Клас редакторів 3D набув за останні 1-2 роки достатньо широкого розповсюдження не тільки у колах спеціалістів, які користуються спеціалізованими дуже міцними графічними станціями, а й у колах користувачів середнього класу, у т. ч. й користувачів домашніх комп’ютерів. Цьому, перш за все, сприяє розвиток спрямованих на працю з 3D графікою не тільки програмних продуктів, а й поява апаратних засобів, також спрямованих на підтримку та прискорення різноманітних 3D процесів.

Далі розглянемо розвиток інструментів розробки від Microsoft. У 1993 році, коли поточна версія Microsoft C/C++ була «сімка», фірма презентувала Visual C++1.0. Microsoft C/C++ був вдосконаленим MS DOS –продуктом. Але вдосконаленим на стільки, що велика кількість програмістів стала супротив при переході на Visual C++. Однак IDE, що повністю базувалась на Windows, з інтегрованим редактором, відладчиком, компоновщиком та браузером виходного тексту зробили перехід на Visual C++ неминучим. Представлення Microsoft Foundation Classes (MFC) 2.0 також позитивно вплинуло на ріст популярності Visual C++. Visual C++ дозволив швидко створювати Win32- та MFC- додатки для Windows, не зв’язуючись з MS DOC.

Технологія .NET, що зробила можливим створення виключно еффективно керованих додатків та Web-сервісів XML з’явилась через 9 років. На цей момент Visual Studio, вперше презентована у 1998 році, налічувала вже шосту версію. Цей інструмент, що являв собою комбінацію декількох прдуктів (Visual C++, Visual Basic, Visual InterDev та Visual J++), став одним з найбільш популярних засобів розробки. Visual Studio дозволяє створювати додатки для цілого ряду платформ : Win32, MFC, COM, ActiveX, Active Template Library (ATL), Java.DirectX та для Web.

Розглянемо OpenGL, що є одною із найбільш популярних програмних інтерфейсів (API – Application Programming Interface) для розгобки додатків в оболасті двумірної та трьохмірної компьютерної графіки.

OpenGL (Open Graphics Library - відкрита графічна бібліотека, графічне API) -специфікація, що визначає незалежний від мови програмування крос-платформний програмний інтерфейс для написання додатків, що використовують двовимірну і тривимірну комп'ютерну графіку.Включає більше 250 функцій для малювання складних тривимірних сцен з простих примітивів. Використовується при створенні комп'ютерних ігор, САПР, віртуальної реальності, візуалізації в наукових дослідженнях. На платформіWindows конкурує з Direct3D.

Стандарт OpenGL було розроблено та затверджено у 1992 році провідними фірмами у розробці програмного забезпечення, як ефективний апаратно-незалежний інтерфейс, що придатний для реалізації на різних платформах. Основою стандарту стала бібліотека IRIS GLб що була розроблена фірмою Silicon Graphics Inc. Бібліотека нараховує близько 120 команд, котрі програміст може застосовувати для задання об’єктів та операцій, що необхідні для написання інтерактивних графічних додатків. Сучасна графічна система OpenGL підтримується більшістю виробників апаратних та програмних додатків. Ця система доступна тим, хто працює у Windows, користувачам компьютерів Apple.Вільно розповсюджувані коди системи Mesa (пакет API на біазі OpenGL) можно компілювати у більшості ОС, у тому числі і Linux.

На базовому рівні, OpenGL – це просто специфікація, тобто документ, що описує набір функцій і їх точну поведінку. Виробники обладнання на основі цієї специфікації створюють реалізації - бібліотеки функцій, які відповідають набору функцій специфікації. Реалізація використовує можливості обладнання там, де це можливо. Якщо апаратура не дозволяє реалізувати будь-яку можливість, вона повинна бути емулювати програмно. Виробники повинні пройти специфічні тести (conformance tests - тести на відповідність) перш ніж реалізація буде класифікована як OpenGL реалізація. Таким чином, розробникам програмного забезпечення досить навчитися використовувати функції, описані в специфікації, залишивши ефективну реалізацію останніх розробникам апаратного забезпечення.

Ефективні реалізації OpenGL існують для Windows, Unix-платформ, PlayStation 3 і Mac OS. Ці реалізації звичайно надаються виробниками відеоадаптерів і активно використовують можливості останніх. Існують також суто програмні реалізації специфікації OpenGL, однією з яких є бібліотека Mesa. З ліцензійних міркувань Mesa є «неофіційною» реалізацією OpenGL, хоча повністю з нею сумісна на рівні коду.

РОЗДІЛ 2. ПРАКТИЧНА ЧАСТИНА

Необхідно розробити програму, що візуалізує графічний об’єкт літери «С» та дозволяє проводити над ним афінні перетворення у просторі.

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