- •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. Маніпулятори введення інформації і керування її положенням на екрані дисплея
1.3.Стандарти машинної графіки
Знайомство зі стандартами машинної графіки дозволить краще зрозуміти її призначення і можливості. Спочатку звернемося до історії розробки цих стандартів.
На початку 1970 р. зусилля розроблювачів систем машинної графіки вперше привели до концепції поділу таких систем на приборно-залежну і приборно-незалежну частини (мал. 15.1). До цього моменту не було єдиного підходу до структури графічної системи, не було також чіткого поділу її прикладної частини і частини, обумовленою специфікою використовуваного графічного пристрою. При розробці кожної нової прикладної системи це породжувало безліч проблем.
На зорі ери комп'ютерної графіки, як ми вже згадували, прикладні графічні програми розроблялися стосовно до особливостей апаратури конкретних обчислювальних систем, використовуваного програмного забезпечення, і алгоритмів машинної графіки. При постачанні графічних систем «під ключ», коли користувач одержував від постачальника систему, готову до експлуатації без яких-небудь доробок, така методика розробки програмного забезпечення була практично єдиною.
Однак у міру появи нових графічних пристроїв, як правило, більш дешевих і ефективних, виникала необхідність переробки чи повторної розробки прикладного програмного забезпечення. Використовувати старі версії програмного забезпечення ставало невигідно, а для його переробки приходилося затрачати занадто багато зусиль. Крім того, для переробки прикладної системи під новий графічний пристрій необхідно у всіх тонкостях знати особливості як використовуваної апаратури, так і пристроїв, що вводяться знову в систему.
Допрацьовувати і переробляти приходилося не тільки програми, але і набори даних. Конструкторські набори, даних (більш точно конструкторські бази даних) являють собою життєво важливу частину будь-якоїй САПР. Якщо приходиться вибирати між портативністю графічних пристроїв, програмного забезпечення і наборів даних, перевага повинна віддаватися останньої.
Мобільність наборів даних неможлива без чітко визначених угод і стандартів, але щоб усвідомити це, і користувачам, і постачальникам графічних систем треба було багато часу.
Приблизно до 1975 р. проекти графічних стандартів і концепція поділу графічних систем на приборно-залежну і приборно-незалежну частини стали привертати загальну увагу. В міру розуміння тих переваг, що дає стандартизація, робота над проектами графічних стандартів інтенсифікувалася. Одним з важливих подій цього етапу було створення секції машинної графіки в рамках робочої групи WG2 ІФІП на зустрічі, що відбулася в травні 1976 р. у Франції. Робочі матеріали зустрічі були опубліковані
У матеріалах секції машинної графіки 1976 р. описані відмінності моделі (структури даних, що представляє об'єкт у машинному виді) і системи візуалізації, необхідної для динамічного відображення стану об'єкта, представленого цією моделлю, на екрані дисплея. Крім того, у них підкреслювалася важливість переносимости програмного забезпечення, уніфікації основних понять і термінології, а також розробки методів, щозабезпечують приладову незалежність системи машинної графіки.
У той же час робоча група по машинній графіці американської асоціації по обчислювальній техніці розробила технічні пропозиції по системі машинної графіки CORE, а у ФРН група фахівців Німецького інституту стандартизації (DIN) працювала над першими версіями Графічної кореневої системи (GKS). Уже на ранніх стадіях роботи над цими двома . проектами в них виявилося багато загального. Найбільше серйозно відрізнялися системи координат: американська система працювала з тривимірними моделями, а западногерманская - із двомірними.
У 1978 р. у складі міжнародної організації по стандартизації (ISO) була утворена нова робоча група TC97/SC5/WG2, у задачі якої входив розгляд графічних стандартів. Ця робоча група почала свою діяльність з оцінки проектів стандартів, представлених національними організаціями по стандартизації: американського проекту CORE, западногерманского GKS і норвезького IDIGS. Оскільки на той час з технічної точки зору найбільш досконалим був проект GKS, його взяли за основу робочого проекту ISO. Робота над ним була довершена в 1985 р. публікацією стандарту ISO7942 .
Робоча група ISO по машинній графіці продовжує залишатися головним органом розробки стандартів машинної графіки. Вона спирається у своїй роботі на співробітництво з багатьма національними і міжнародними організаціями, що працюють в області машинної графіки і суміжнихобластях.
В даний час ISO веде роботу над декількома проектами стандартів в області машинної графіки. У їхньому числі GKS-3D, метафайл машинної графіки (СОМ), ієрархічна інтерактивна система програмування графічних задач (PH1GS), інтерфейс машинної графіки (CGI). Сукупність цих проектів утворює сімейство сумісних один з одним графічних стандартів і охоплює широку предметну область прикладних задач машинної графіки.
Виходячи з викладеного вище, стандартизація на програмне забезпечення машинної графіки повинна забезпечити: а) переносимость графічних програм між різними обчислювальними системами(мобільність); б) можливість швидкого освоєння методів і засобів графічного програмування; в) визначення основних напрямків розробки й удосконалювання техсредств ГДС.
1.3.2 Структура ПО ГДС і сфери дії стандартів машинної графіки Програмне забезпечення машинної графіки (ПО МГ) складає основу рішення всіх задач вводу-виводу і перетворення графічної інформації, її нагромадження і збереження в системі. Визначальний вплив на структуру ПО МГ робить архітектура комплексу технічних засобів системи, можливості графічних пристроїв, область застосування, рівень стандартизації в інформатиці й у машинній графіці.
ПО МГ розділяють на базове і прикладне.
Базове програмне забезпечення діалогових графічних систем (БПО ГДС) призначено для реалізації загальних для багатьох областей застосування функцій графічного вводу-виводу й організації процесу діалогової взаємодії людини з ЕОМ.
Прикладне програмне забезпечення машинної графіки (ППО МГ) використовується для вирішення задач графічного введення-висновку конкретної області застосування на основі використання можливостей БПО ГДС.
БПО ГДС забезпечує рішення наступних основних задач:
одержання графічних зображень шляхом завдання й об'єднання найпростіших графічних об'єктів (наприклад, крапка, відрізок прямої, рядок тексту, дуга окружності); .
виконання елементарних перетворень над цими зображеннями (наприклад, зрушення, поворот, масштабування);
керування режимами роботи пристроїв уведення діалогових систем (наприклад, світлове перо, алфавітно-цифрова і функціональна клавіатура) і прийом даних, введених оператором системи за допомогою цих пристроїв;
розробку діалогової графічної мови взаємодії людини з ЕОМ і організацію процесу його інтерпретації.
З огляду на багатоцільове призначення, БПО ГДС має досить високий рівень уніфікації і забезпечує незалежність ППО МГ від архітектури і можливостей конкретних пристроїв графічного вводу-виводу. На виконання цих вимог спрямовані роботи зі стандартизації структури, інтерфейсів і функцій ПО МГ.
На мал. 1.1 представлена структурна схема ПО ГДС і «зони впливу» різних стандартів. Призначення і функції програмних модулів описані в концептуальній програмістській моделі ГДС (розділ 1). Штрихова лінія визначає границю між приборно-залежним і приборно-незалежним ПО .ГДС.
Приборно – незалежне ПО (ПП, БГС) виконується на мовах високого рівня (Паскаль, С++ й ін.).
Приборно - залежне ПО ГДС (дисплейна програма і т.д.) виконується на мовах низького рівня (ассемблеро-подібних мовах), що представляють базові графічні можливості виводу тієї чи іншої робочої станції. Перевага цього рівня ПО полягає в тому, що при його розробці можна використовувати достоїнства технічних засобів з метою реалізації максимальної швидкодії алгоритмів виводу графічної інформації.
Крім цього на мал. 1.1. представлені сфери впливу різних стандартів на ПО машинної графіки, необхідність розробки і впровадження яких продиктована найширшим впровадженням останнім часом інформаційних технологій із застосуванням комп'ютерної графіки.
Приборно - незалежне ПО / Приборно - залежне ПО
GKS-2D GK1S-3D PHlfi
Інтерфейс ПП Приладовий інтерфейс Інтерфейс користувача
(мовний прошарок) (драйвери вводу-вивод, CGI) (мови взаємодії)
Малюнок 1.1 - Сфери дії стандартів машинної графіки
На рівні представлення даних (ПСД) використовується де-факто національний стандарт США - IGES («початкові специфікації обміну графічними даними»). На рівні визначення функцій базової графічної системи - GKS-2D, (Графічна Коренева Система). У СРСР GKS-2D уведений з 1.02.89р. під найменуванням: ДСТ 27817-88'«Системи обробки інформації. Машинна графіка. Фундаментальний опис ядра графічної системи (ЯГС)». Крім цього можливо застосування стандарту PHIGS («Ієрархічна інтерактивна система програмування графічних задач»), а також GKS-3D - опис функцій ЯГС для тривимірних моделей об'єктів. На рівні приборно - незалежного опису об'єкта засобами БГС - стандарт CGM: «Системи обробки інформації. Машинна графіка. Метафайл для збереження і передачі даних, що описують зображення».
Крім цього, необхідно угода на прив'язку базової графічної системи в GKS до алгоритмічних мов (інтерфейс ПП). Функціональні стандарти (GKS і ін.) описують лише не залежне від мов високого рівня ядро графічної системи, тобто дають перелік функцій БГС. У стандарті визначена тільки семантика функцій, а синтаксис підлеглий інструкціям мови високого рівня, на який виконана БГС. Інакше кажучи, функції БГС реалізуються як підпрограми (Фортран) чи процедури і функції (Паскаль). Оператори мови високого рівня, що реалізують функції БГС, складають мовний прошарок чи мовний інтерфейс стандарту.
Протокол обміну інформацією між БГС і виртуальним пристроєм виводу (приладовий інтерфейс ) можливий відповідно до вимог стандарту CGI - «Системи обробки інформації. Машинна графіка. Інтерфейс для ведення діалогу з графічними пристроями».
Інтерфейс користувача реалізується через мову взаємодії користувача із системою, що включає як безліч операторів вхідної командної мови, за допомогою яких користувач уводить дані, так і підмножини графічних зображень - повідомлень, одержуваних від ЕОМ. Інтерфейс користувача в ГДС реалізується засобами базової графічної системи, механізм якої, крім всього іншого, дозволяє формувати необхідні зображення, а також обробляти інформацію, що надходить від користувача з різних пристроїв уведення.
У наступному розділі приведений короткий опис згаданих вище стандартів комп'ютерної графіки . 1.3.3 Огляд стандартів комп'ютерної графіки 1.3.3.1 Метафайл машинної графіки CGM. Повна назва цього стандарту - «Системи обробки інформації. Машинна графіка. Метафайл для збереження і передачі даних, що описують зображення».
Як випливає з назви документа, стандарт описує структуру графічних даних, що можуть зберігатися у виді файлу і згодом використовуватися на тій же обчислювальній системі, на якій вони були сгенерировані, чи передаватися по мережі зв'язку в іншу обчислювальну систему.
Стандарт CGM містить у собі кілька альтернативних схем кодування графічних елементів. Опис цих схем приводиться в першій частині опису стандарту. Наприклад, двоїчне кодування дозволяє представляти графічні дані в компактній формі, що дозволяє легко відновлювати зображення, і зручної для повторного використання в графічній системі. Компактність символьного кодування набагато нижче, але ця форма представлення графічних даних краще пристосована для передачі файлів по каналах зв'язку. Нарешті, текстове кодування дозволяє представити графічні дані у формі, придатної для читання. Це буває корисно при налагодженні програм, що породжують графічні дані, чи при передачі файлу по каналі зв'язку, що припускає роботу тільки з текстовими файлами.
Вхідні в стандарт СОМ графічні елементи в більшості відповідають функціям, викликуваним прикладною програмою на верхньому рівні системи. Можна сказати, що між елементами стандарту СОМ і графічні функції стандарту GKS мається взаємно однозначну відповідність. Тому при висновку графічних елементів у метафайл графічна система просто перекодує викликувані користувальницькою програмою функції в потрібний формат, майже не виконуючи додаткової обробки.
Надалі стандарт СОМ може бути розширений для Спільної роботи з іншими функціональними стандартами. 1.3.3.2 Інтерфейс машинної графіки CG1 Інтерфейс між приборно-незалежною і приборно-залежною частинами ПО ГДС (мал.1.1) - сфера дії стандарту CGI, повна назва якого -«Системи обробки інформації. Машинна графіка Інтерфейс для ведення діалогу з графічними пристроями».
Стандарт регламентує інтерфейс між системою, що реалізує функціональний стандарт, і графічними пристроями, з якими вона , взаємодіє.
Відмінною рисою стандарту є формалізація поняття «діалог», винесеного навіть у назву. Діалог припускає обмін службовими повідомленнями між реалізацією функціонального стандарту і графічним пристроєм, у ході якого вони набудовуються на оптимальний режим взаємодії.
З одного боку, автори існуючої версії стандарту CGI намагаються охопити як можна більш широкий діапазон функціональних можливостей графічних пристроїв, з іншого боку, повна сумісність мається тільки зі стандартом GKS, оскільки не передбачені засоби для роботи ні з тривимірними елементами, ні зі спеціальними функціями стандарту PH1GS. Передбачається, що одним із пристроїв графічної системи може бути файл графічних даних у форматі стандарту CG1. Між функціями стандарту й елементами стандарту CGM мається досить точна відповідність.
У більшості випадків між реалізацією функціонального стандарту і графічним пристроєм передбачається діалог. Однак робочий проект стандарту не вимагає, щоб такий тип взаємодії був єдиним. Можливо, наприклад, взаємодія між двома процесами, що використовують ресурси системи в режимі поділу часу.
Стандарт CGI передбачає кілька схем кодування. Символьне кодування найбільш зручне для взаємодії з вилученим графічним пристроєм по каналі зв'язку. Для роботи з близько розташованими пристроями більш доцільно використовувати двоїчное кодування, а для взаємодії процесів у межах однієї обчислювальної системи передбачений процедурний інтерфейс.
Найбільший інтерес проект стандарту CGI викликав у розроблювачів графічних пристроїв і програмного забезпечення графічних систем. Розроблювачам апаратури хотілося б, щоб стандарт можна було реалізувати апаратним чи мікропрограмним способом. З прийняттям стандарту CGI з'являється можливість створити універсальний драйвер графічного пристрою і відмовитися від реалізації безлічі протоколів обміну з різними графічними пристроями.
Визначені вигоди одержують від упровадження стандарту і користувачі графічних систем.
Стандарт дає можливість позбутися від «диктату» постачальників апаратних засобів. В даний час багато користувачів змушені обмежитися використанням графічних пристроїв, закуплених в одного постачальника, оскільки переробка Драйвера для графічних пристроїв іншого типу може зажадати надмірних витрат.
Стандарт дозволить позбутися від непродуктивної і тривалої роботи, що вимагається в. дійсний час дня розробки і супроводи драйверів пристроїв різних типів.
