- •1.2.Сфери застосування комп'ютерної графіки
- •1.3.Стандарти машинної графіки
- •1.3.5. Функціональні стандарти
- •1.3.6 Рівень прикладної програми
- •2.3.Стандарт gks.
- •2.3.1 Призначення стандарту gks
- •2.3.2. Система програмування gks
- •2.5.Графічні станції
- •2.5.1 Концепції робочої станції
- •3.3 Однорідні координати і матричне представлення двовимірних перетворень
- •Рівняння масштабування (3.6) у матричній формі в однорідних координатах записуються у виді
- •3.4 Композиція двовимірних перетворень
- •4.2. Проектування.
- •4.4 Перетворення проектування. Рівнобіжні орфографічні проекції
- •4.5 Ортографічні аксонометричні проекції
- •4.6. Визначення кутів φ і θ для різних видів аксонометричних проекцій
- •Для прямокутної ізометрії коефіцієнти перекручувань по осях однакові
- •4.7. Косокутні проекції •
- •4.8. Матричне представлення тривимірних перетворень
- •4.9. Композиція тривимірних перетворень
- •5.1.1. Явне завдання багатокутників
- •5.1.2. Завдання багатокутників за допомогою покажчиків у список вершин
- •5.1.3. Явне завдання ребер
- •5.2. Рівняння площини
- •5. 3.1. Параметричні кубічні криві
- •5.4.Формати Безьє , Ерміта і в-сплайни.
- •5.4.1. Форма Ерміта
- •5.4.3. Форма b-сплайнів
- •5.5.1. Форма Ерміта
- •5.5.2. Форма Безье
- •5.6. Перетворення кривих і шматків поверхонь
- •5.7. Обчислення крапок на бікубичній поверхні
- •6.1 Методи створення реалістичних зображень тривимірних объектів.
- •Малюнок 6.1 - Класи моделей геометричних об'єктів
- •6.4. Дифузійне відображення і розсіяне світло.
- •6.3. Дзеркальне відображення
- •6.4.Модель Торренса-Сперроу та інші.
- •7.1 Призначення н сфера застосування алгоритмів растрової графіки
- •7.4.Алгоритми заповнення кольором області : рекурсивний, з затравкою. 7.4.1 Визначення і класифікація областей і алгоритмів
- •7.4.2 Простий алгоритм заповнення з запалом
- •7.5.2. Відокремлення крапок.
- •7.5.3. Відокремлення відрізків .
- •7.5.3 Алгоритм Коена - Сазерленда
- •7.5.4. Алгоритм сортування по глибині
- •7.5.5. Алгоритм, що використовує z-буфер
- •7.5.6. Алгоритми порядкового сканування
- •7.5.7. Алгоритми розбивки області
- •8.1. Алгоритм сортування по глибині
- •7.5.5. Алгоритм, що використовує z-буфер
- •7.5.6. Алгоритми порядкового сканування
- •8.3. Алгоритми розбивки області
- •9.1 Графічний дисплей з довільним скануванням екрана
- •9.1.1 Векторний дисплей
- •9.3. Плоттери з довільним скануванням видової поверхні
- •9.4. Маніпулятори введення інформації і керування її положенням на екрані дисплея
2.5.Графічні станції
2.5.1 Концепції робочої станції
Незалежність GKS від графічних пристроїв ґрунтується на найважливішій концепції робочих станцій (PC). Останні є абстрактними ( віртуальними) пристроями, що надають прикладній програмі передбачений у системі GKS уніфікований набір графічних функцій безвідносно до того, яким чином реалізовані ці функції в конкретних фізичних пристроях.
Абстрактна графічна робоча станція має наступний набір можливостей (хоча на практиці вона може володіти , як усіма, так і деякими з них):
- у її склад входить один доступний носій зображення з відомою вирішувальною здатністю;
- станція допускає ільки прямокутний простір координат зображення, що не може складатися з декількох частин;
дозволяє завдання і використання просторів координат зображення менших розмірів чим максимально припустимий, гарантуючи при цьому,' що зображення не буде виведено за межі зазначеного простору (це забезпечується «відсіканням на станції»);
підтримує вивод примітивів з різними атрибутами, допускає завдання різних типів ліній, шрифтів тексту, розмірів літер і т.і.
до складу абстрактної графічної станції входить одне чи кілька логічних пристроїв уведення даних кожного з класів, що допускають різні режими роботи;
зберігає сегменти і надає можливості для їхньої зміни й обробки.
Ядро графічної системи допускає різну форму представлення примітивів виводу на різних графічних станціях, дозволяючи тим найкращим способом використовувати специфічні можливості кожної. Подібна воля можлива завдяки наявності таких засобів, як обирані за допомогою індексів зв'язування атрибути і індивідуально встановлювані для кожної графічної станції перетворення. Режим затримки відновлення зображення дозволяє керувати моментом часу, у який потрібно обновити зображення на пристрої виводу (так, вивод зображення на графобудівник може бути попередньо буферизирований, у той час як зміни зображення на інтерактивній дисплейній станції будуть виявлятися в найближчий можливий момент часу).
На носій зображення пристрою виводу графічної станції містяться зображення, задані усередині частини простору адресуємих координат цього пристрою (наприклад, зображення буде виведено в ту частину екрана дисплея на запам'ятовуючій трубці, що визначена на даний момент як поле виводу даних).
Пристрій графічного виводу (Display device) - пристрій (наприклад, дисплей з регенерацією чи на запам'ятовуючій трубці, графобудівник), здатний до відтворення зображень.
Зображення (Display image) - сукупність графічних примітивів і/чи сегментів, що може бути одночасно відтворена на носії зображення.
Носій зображення (видова поверхня - Display surface) - у графічному пристрої те фізичне середовище, на якому відтворюються зображення. Наприклад, екран электронно - променевої трубки, папір у графобудівнику.
Простір зображення (поле виводу - Display space) - частина адресуемого простору пристрою, що відповідає області, доступної для виводу зображень.
2.4.2 Типи графічних станцій GKS По типі кожна графічна станція може бути віднесена до однієї із шести категорій:
- станція виводу, що має у своєму складі носій зображення для відтворення графічних примітивів (наприклад, графобудівник);
- станція введення, обладнана хоча б одним пристроєм уведення (наприклад, планшетом);
станція введення - виводу, що має у своєму складі носій зображення і хоча б один пристрій уведення (називається також інтерактивною графічною робочою станцією);
загальна пам'ять сегментів;
вивод метафайла;
-уведення метафайла; Останні три -категорії (загальна пам'ять сегментів, вивод і введення метафайла) є засобами GKS, спеціально призначеними для тимчасового чи постійного збереження графічної інформації. Їхня подібність зі станціями обмежується тільки застосуванням до них функцій керування, в іншому ж вони мають зовсім інші властивості.
2.6. Метафайл. Повна назва цього стандарту - «Системи обробки інформації. Машинна графіка. Метафайл для збереження і передачі даних, що описують зображення».
Як випливає з назви документа, стандарт описує структуру графічних даних, що можуть зберігатися у виді файлу і згодом використовуватися на тій же обчислювальній системі, на якій вони були сгенерированы, чи передаватися по мережі зв'язку в іншу обчислювальну систему.
Стандарт CGM містить у собі кілька альтернативних схем кодування графічних елементів. Опис цих схем приводиться в першій частині опису стандарту. Наприклад, двоїчне кодування дозволяє представляти графічні дані в компактній формі, що дозволяє легко відновлювати зображення, і зручної для повторного використання в графічній системі. Компактність символьного кодування набагато нижче, але ця форма представлення графічних даних краще пристосована для передачі файлів по каналах зв'язку. Нарешті, текстове кодування дозволяє представити графічні дані у формі, придатної для читання. Це буває корисно при налагодженні програм, що породжують графічні дані, чи при передачі файлу по каналу зв'язку, що припускає роботу тільки з текстовими файлами.
Вхідні в стандарт СGМ графічні елементи в більшості відповідають функціям, викликуваним прикладною програмою на верхньому рівні системи. Можна сказати, що між елементами стандарту СGМ і графічними функціями стандарту GKS мається взаємно однозначна відповідність. Тому при виводу графічних елементів у метафайл графічна система просто перекодує викликувані користувальницькою програмою функції в потрібний формат, майже не виконуючи додаткової обробки.
Надалі стандарт СGМ може бути розширений для cпільної роботи з іншими функціональними стандартами.
Лекція 3.Операції перетворення двовимірних об’єктів в звичайних і однородних кординатах .
3.1. Геометричні перетворення на площині
Крім рішення задачі представлення ГО в пам'яті ЕОМ , ГДС повинна забезпечувати рішення задачі формування зображення (візуалізації ГО), що складає один з розділів теоретичного забезпечення. .
Для користувача ГДС дуже важливо, щоб у процесі візуалізації йому була надана можливість маніпулювати об'єктом на екрані з метою поліпшення наочності зображення, розгляд його окремих елементів з різних сторін і т.п. Ці можливості можна забезпечити шляхом так званих елементарних геометричних перетворень об'єкта - переносу • (зрушення), повороту і масштабування щодо заданої крапки (початку координат) [6,14,15,17]. На мал.3.1 показано приклад переміщення ГО (квадрата) по екрані з положення I у положення П.
Малюнок 3.1- Приклад руху об'єкта по видовій поверхні (екрану)
Очевидно, що з положення I у положення II ГО (квадрат)'можна перемістити наступною комбінацією елементарних перетворень:
масштабування (2:1) щодо крапки А;
перенос ГО На величину (Δх, Δу) по відповідним координатних осях щодо положення I;
поворот ГО на кут α щодо крапки А.
Даний приклад демонструє геометричні перетворення на площині хоча можливі аналогічні перетворення ГО й у тривимірному просторі.
Математичні основи геометричних перетворень на площині почнемо на прикладі елементарного геометричного об'єкта - крапки.
3.2.1 Перенос
Крапки на XY - площини [17] можна перенести в нові позиції шляхом додавання до координат цих крапок констант переносу. Для кожної крапки Р(х,у), що переміщається в нову крапку Р'(х'y’) зрушуючи на Δх одиниць паралельно осі X і на Δу единиц. паралельно осі Y, можна записати рівняння:
х' = х + Δх, у'=у + Δу. (3.1)
На мал.3.2. показана крапка з координатами (1,2), що зміщається на відстань (5,6), преутворити в крапку (6,8). Визначаючи вектора-рядка
Р = [ху], Р' = [х'у'], Т = [Δх Δу], можна переписати рівняння 3.1. у векторній фо [х'у'] = [ху] + [ΔХΔу], (3.2)
чи більш коротко Р' = Р + Т. (3.3)
Малюнок 3.2 - Перенос крапки
Об'єкт можна перенести, застосовуючи рівняння (3.2) до кожної його крапки. Однак, оскільки кожен відрізок, що описує об'єкт, складається з нескінченного числа крапок, такий процес тривав би нескінченно довго. На щастя, усі крапки, що належать відрізку, можна перенести шляхом переміщення одних лише крайніх крапок відрізка і наступного креслення нового відрізка між крапками, що вийшли в результаті.
• Це справедливо також для масштабирования (розтягання) і повороту. Доказ твердження надаємо читачу як вправу. На мал.3.3. показаний результат дії на контур будиночка операції переносу на відстань (2,-3). .
Малюнок 3.3 - Перенос об'єкта
Визначення 3.1. Алгоритм переносу складного об'єкта, який складається з багатьох відрізків (мал.3.3), складається в перерахуванні нових (претворених) координат крайніх крапок відрізка по формулі (3.2) і з'єднанні цих крапок в колишньому порядку.
Це властивість характерна також для масштабування і повороту таких об'єктів.
3.2.2 Масштабування.
Крапки можна промасштабувати (розтягти) [17] у Sx раз уздовж осі X і в Sy раз уздовж осі Y, одержавши в результаті нові крапки, за допомогою множення
х' = х • Sx, у' = у Sy. (3.4)
Визначаючи
S як
, можна записати в..матричній формі
чи
P’ = P-S. (3.5)
На мал. 8.7. окрема крапка (4,8) масштабується з коефіцієнтом 1/4 по осі X і по осі Y. На мал.3.5. показаний контур будиночка, лромасштабований з коефіцієнтами 1/2 по осі X і ¼ по осі Y.
Малюнок 3.4 - Масштабування крапки
Відзначимо, що масштабування виробляється відносно початку координат: у результаті перетворення будиночок став менше і ближче до початку координат. Якби масштабні множники були більше 1, то будиночок збільшився б і .віддалився від початку координат. Способи проведення масштабування щодо інших крапок, відмінних від початку координат, розглядаються в одному з наступних розділів . Пропорції будиночка також -змінилися: було застосоване неоднорідне масштабирование, при, якому Sx ≠ Sy. Однорідне масштабирование, для якого Sx = Sy, не впливає на пропорції.
До масштабування , Після масштабування
Малюнок 3.5 - Масштабування об'єкта
3.2.3 Поворот
Крапки можуть бути повернені на кут ѳ відносно початку координат, як показано на мал.3.6 для крапки Р(х, у) і кута ѳ °. '
Малюнок 3.6 - Поворот крапки
Математично поворот визначається в такий спосіб: х'=х Cosѳ – у Sinѳ
у' = x Sinѳ + у Cosѳ
У матричній формі цей вираз буде мати наступний вид:
P’= P-R(ѳ), (3.6)
де через R(ѳ) позначена матриця повороту з вираження (3.6). На мал.3.7 показаний квадрат, повернений на 45° . Як і у випадку масштабування, поворот здійснюється відносно початку координат. Поворот щодо довільної крапки розглянутий в одному з наступних розділів.
До повороту Після повороту
Малюнок 3.7 - Поворот квадрата
Позитивними вважаються кути, вимірювані проти руху годинної стрілки від х к у.- У випадку негативних (по годинній стрілці) кутів для модифікації виразу (3.6) можна скористатися тотожностями: cos(-e) = cose і sin(-e) = -sinе.
Рівняння (3.6) легко виходить з мал.3.6, на якому крапка Р(х,у) переводиться в крапку Р' (х', у') поворотом на кут ѳ. Оскільки поворот виробляється відносно початку координат, відстані від нього до Р и Р' рівні. Вони позначені на малюнку через r.
З простих тригонометричних співвідношень випливає, що
x = r cos φ, y = r sin φ (3.7)
і
х' = r cos(θ+φ) = r Cos φ Cos θ - r Sin φ Sin θ,
у' = r sin(θ+φ) = r Sin θ Cosφ + r Sin φ Cos θ ( 3.8 )
Тепер підставимо рівняння (3.7) у рівняння (3.8) і одержимо
рівняння (3.6)
