База даних містить опис реальних та абстрактних об'єктів, зображення яких мають з'явитися на екрані дисплея. До опису об'єктів звичайно додають геометричні дані про координати, які визначають форму компонентів об'єкта (параметри), атрибути об'єкта (тип, товщину, колір лінії чи фактуру поверхні, тип шрифту, розмір символів, напрям рядка символів, центрування рядка символів), а також дані про зв'язність та положення (про поєднання компонентів між собою). Є також негеометрична, чи текстова, інформація про “властивості”, яка корисна для програм постобробки та для інтерактивного користувача. Прикладами таких даних для застосування в галузі комп'ютерного проектування є відомості про ціну та постачальника, теплові, механічні чи електричні властивості та допуски.
Моделюючі системи створюються на основі програмних засобів, які реалізують основні графічні функції — типові способи комп'ютерної графіки, що необхідні для систем будь-якої проблемної орієнтації. До основних графічних функцій належать: позиційні та метричні задачі, афінні перетворення (зсув, перенесення, поворот, симетрія, масштабування), теоретико-множинні операції (перетин, об'єднання, доповнення, різниця) тощо. Ці функції реалізуються на основі внутрішніх канонічних моделей об'єктів, які описують графічні елементи, що дає змогу використовувати найбільш ефективні алгоритми.
Основні графічні функції мають бути реалізовані як для дво-, так і для тривимірних моделей.
Тривимірні моделі можуть бути аналітичними, кусково-аналітичними, алгебрологічними, рецепторними та ін. Відповідно до класу задач, які розв'язуються, моделююча система, крім основних графічних функцій, може доповнюватися графічними функціями проблемної орієнтації.
Моделююча система описує дво- чи тривимірну геометрію об'єкта, який виводиться на видову поверхню, для графічної системи, ядром якої є базовий графічний пакет (БГП). БГП містить набір підпрограм, які забезпечують інтерфейс з мовою високого рівня та дає змогу працювати з пристроєм у термінах елементарних графічних операцій різного рівня складності (зобразити відрізок зеленим кольором, зобразити коло тощо). Цей набір підпрограм звичайно покриває майже всі можливості апаратури. Склад та функції підпрограм БГП залежать від конструкції обладнання, можливостей його блока керування. Вважають, що БГП для графопобудовника містить підпрограми креслення відрізків прямих, кола та його дуг суцільними та штрих пунктирними лініями, а також виведення текстових та цифрових написів. БГП для графічного дисплея забезпечує, великі можливості. наприклад, масштабування та переміщення зображення, розподіл графічної інформації на сегменти та незалежне керування частинами зображення, виділення, витирання елементів тощо.
Результати роботи підпрограм безпосередньо відображуються на обладнаннях графічного виведення. БГП працює з обладнанням введення — виведення графічної інформації (ГІ) через програму-драйвер операційної системи. Програма-драйвер реалізує взаємодію із системою та виконання інструмента (графопобудовника, електронного променя графічного дисплея, підсвічування точки та ін.).
Образно кажучи, графічну систему можна порівняти з "уявлюваною фотокамерою". Моделююча система дає уявлюваній фотокамері опис сцени, яка складається з одного (чи більше) об'єкта деякого штучного світу (дво- чи тривимірного). Потім ця камера створює вигляд об'єкта в цьому світі. Як і у разі використання фотоапарата "Поляроїд", зроблений знімок відразу "проявляється" і майже миттєво може бути показаний на видовій поверхні. Уявлювана камера діє як реальна: вона може побудувати знімок сцени тільки з візуальних елементів найнижчого рівня та нічого не знає щодо їх організації чи структури. Тому моделююча система описує об'єкти для графічної системи як графічні примітиви нижнього рівня.
Таким чином, графічна система забезпечує введення та виведення графічної інформації. Вона має бути інваріантною щодо об'єкта й проблемно-незалежною.
Якщо використовується графічний стандарт GKS, то забезпечується крім цього незалежність і від технічних засобів комп'ютерної графіки, що досягається завдяки введенню поняття графічної робочої станції, яка є абстракцією фізичного пристрою. Логічні пристрої введення призначені для введення: координат (LOCATOR), дійсних чисел (VALUATOR.), послідовності координат (STROKE), рядка символів (STRING), однієї з альтернатив (СНОІСЕ), елемента зображення (RІСК).
Пристрій виведення забезпечує виведення:
· ламаної (POLYLINE);
· послідовності маркерів спеціальних символів з центрами у визначених точках (POLYMARKER);
· рядка тексту (ТЕХТ);
· заповненої площі (FILL AREA);
· масиву клітин (CELL ARRAY);
· узагальненого графічного примітива (GENERALIZED DRAWING PRIMITIVE).
Атрибути примітивів визначаються з точністю до реалізації робочої станції, яка інтерпретує їх відповідно до можливостей апаратури. Слід зазначити, що система GKS —двовимірна графічна. Проте в рамках ISO виконуються роботи, пов'язані з розробкою стандарту для тривимірної графіки.
Крім того, у рамках ISO проектується стандартизація геометричного інтерфейса між системами автоматизованого проектування та виробництва, який стандартизує формат файла даних для обміну проектно-конструкторською інформацією.
Процедурно-орієнтовані мови. Текстові і графічні редактори
Процедурно-оріентовані мови реалізації комп'ютерної графіки мають відповідати таким вимогам:
1 Мова повинна давати користувачеві засоби для опису та генерації зображень і маніпулювання ними. Для опису та гене-рації зображень потрібно мати команди за допомогою яких можна специфікувати графічні примітиви або сукупність примітивів і задавати атрибути, які визначають візуальні якості цих примітивів на екрані дисплея. До маніпуляції належать геометричні перетворення та операції кадрування, а також перекомпонування піделементів малюнка, їх злиття та виведення.
2 Графічна мова повинна мати засоби для аналізу зображень. Для цього слід мати команди, які дають змогу виявляти та досліджувати річні способи зображення. Аналізуються також взаємозв'язки між піделементами зображень.
3 Мова має бути гнучкою. Важливою є наявність засобів для роботи з процедурами.
Нині таких універсальних графічних мов ще не розроблено. Формування зображень (зокрема інтерактивне) та їхній аналіз було виділено в дві окремі частини; шляхи зображення цих частин поки що тільки дискутуються.
Розглянемо модель графічних мов високого рівня.
За останнє десятиріччя з'явилося багато графічних мов або графічних розширень існуючих мов.
Розширення мови означає додаток до існуючої "базової" мови нових синтаксичних конструкцій. Деякі з існуючих мов програмування зручні для розширення, тому їх називають "розширюваними". Взагалі розширення мови вимагає модифікації та переписування заново існуючого компілятора, що є довгого трудомісткою роботою. Крім цього, виникає питання про транспортабельність одержаного таким чином діалекту мови.
Найбільш поширеним методом, який дає змогу відмовитися від модифікації компілятора базової мови, є створення передтранслятора. При цьому початкова програма складається за інструкціями двох видів: інструкцій базової та розширеної мов. Передтранслятор транслює останні інструкції базової мови.
Останнім часом з'явилося багато мов для опису зображень, в яких вони подаються як композиції найпростіших елементів. При цьому різновидів найпростіших елементів небагато.
Однією з мов такого типу є мова АutoLISP.
Основним графічним примітивом цієї мови є лінія. Лінія ідентифікується вибором двох точок, які їй належать (початком і кінцем).
Наведемо приклади задання відрізків:
double from x; подвійне x;
double from y; подвійне y;
double from z; подвійне z;
double to x; подвійне х;
double to у; подвійне у;
double to z; подвійне z.
Звичайно таке подання застосовується в примітивних програмах.
Як відомо, дві точки визначають пряму. Місце розміщення точки в пристрої визначається координатами х. у, z. Структура даних для задання лінії при цьому може бути структурою типу запису, в якому відрізок визначається двома кінцевими точками.
Якщо моделюється множина ліній, що складаються із сотень та тисяч відрізків, то існують методи, які дають змогу скорочувати не тільки обсяг пам'яті, а й час пошуку.
Типовими мовами високого рівня є Фортран. Паскаль, Сі++, Лісп, Бейсік.
Вхідною інформацією для операторів, що генерують графічні об'єкти, є числові дані. Їхнім виходом є креслення на графопобудовнику чи зображення на екрані дисплея. Вони нічим принципово не відрізняються від інших процедур виведення з обчислювальної машини.
Для задач пов'язаних з генерацією зображень, система графічного програмування може бути реалізована у формі пакету підпрограм. За останні роки було створено велику кількість таких пакетів, орієнтованих на генерацію зображень (зокрема в інтерактивному режимі).
Технічне забезпечення було б недоцільним без програмного забезпечення його.
Програмне забезпечення графіки — це набір програм, підготовлених, щоб зробити їх зручними для користувача, який працює із системою комп'ютерної графіки. Цей набір програм включає програми для формування зображень на екрані ЕПТ, для маніпулювання зображеннями та для виконання різною роду взаємодій між користувачем та системою. Крім програм графіки, в нього можуть входити додаткові програми, які реалізують які-небудь спеціальні функції. До них належать, зокрема, програми аналізу конструкцій.
Програмний засіб для конкретної системи комп'ютерної графіки значного мірою залежить від типу апаратних засобів, що використовуються в цій системі. Він має бути написаний спеціально для тих типів ЕПТ і обладнань введення, які застосовуються в даній системі. Внутрішня структура програм для ЕПТ зі штриховим записом звичайно відрізняється від структури програми для ЕПТ з растровим скануванням, Відмінність між трубкою запам'ятовування та трубкою з регенерацією також має впливати на програму графіки. Хоча ці відмінності в програмах можуть бути непомітними для користувача, вони важливі при проектуванні системи інтерактивної комп'ютерної графіки.