- •Конспект лекцій
- •1. Машинная графика. Основные понятия 6
- •2 Преобразования в компьютерной графике 17
- •3. Технические средства мг 39
- •4. Трехмерная графика 55
- •Введение
- •1. Машинная графика. Основные понятия
- •1.1. Концептуальная модель машинной графики
- •1.2 Программирование
- •1.2.1 Координатные пространства
- •1.2.2 Текущее положение
- •1.2.3 Примитивы вывода и атрибуты.
- •1.2.4 Видовые операции
- •1.2.5 Относительные координаты
- •2 Преобразования в компьютерной графике
- •2.1 Общая архитектура графической системы
- •2.3 Геометрические преобразования
- •2.3.1 Основные математические операции
- •2.3.2 Двумерные преобразования
- •2.3.3 Однородные координаты и матричное представление двухмерных преобразований
- •2.3.4 Композиция двумерных преобразований.
- •2.3.5 Вопросы эффективности
- •2.4 Растровая развертка примитивов.
- •2.4.1 Развеpтка векторов. Тангенсный алгоритм
- •2.4.2 Алгоритм Брезенхема
- •2.4.3 Растровая развертка окружностей
- •2.4.4 Заполнение областей
- •2.4.5 Отсечение примитивов вывода
- •2.4.6 Отображение окна на поле вывода
- •3. Технические средства мг
- •3.1. Архитектура систем мг
- •3.2 Кадровое запоминающее устройство
- •3.3. Видеоконтроллеры
- •4. Трехмерная графика
- •4.1 Трехмерные координатные пространства. Матричное представление трехмерных преобразований
- •4.2 Изображения трехмерных объектов
- •4.3 Проекции
- •4.4 Представление пространственных форм
- •4.4.1 Представление поверхностей полигональной сеткой
- •4.4.2 Задание плоскости
- •4.4.3 Бикубические поверхности
- •4.5. Алгоритмы удаления скрытых линий и поверхностей
- •4.5.1 Трехмерное отсечение
- •4.5.2. Удаление скрытых линий и поверхностей
- •4.6. Алгоритмы фотореалистичной закраски
- •4.6.1 Модель освещения
- •4.6.2. Однотонная закраска
- •4.6.3 Закраска методом Гуро
- •4.6.4 Метод закраски Фонга
- •4.6.5 Определение нормалей к поверхности, вершинам, ребрам
- •4.6.6 Определение вектора отражения
1.2 Программирование
Прогресс в области производства аппаратуры в значительной степени изменил отношение к системам машинной графики. Уникальное и дорогостоящее средство - графический дисплей - теперь повсеместно заменяет алфавитно-цифровой видеотерминал как основное средство связи человека с ЭВМ. Такой же прогресс наблюдается и в области программного обеспечения МГ. Процесс совершенствования программного обеспечения был длительным и медленным. Был пройден путь от аппаратно-зависимых пакетов подпрограмм низкого уровня, поставляемых изготовителями вместе с конкретными дисплеями, к аппаратно-независимым пакетам высокого уровня. Такие пакеты могут быть использованы для управления самыми разнообразными графическими устройствами - графопостроителями, дисплеями растровыми и векторными.
Основная цель аппаратно-независимого пакета, используемого в сочетании с языком высокого уровня (FORTRAN, PASCAL, C) состоит в том, чтобы обеспечить мобильность прикладной программы при переходе с одной ЭВМ на другую и от одного графического устройства к другому.
Существенный шаг вперед сделан в середине 70-х годов с введением "Графической системы Core " [1], а затем группы "Графических стандартов ISO ", имеющих ядром стандарт GKS [6]. В настоящее время создано множество графических пакетов, среди которых могут быть отмечены такие пакеты как PAINTBRUSH, COREL DRAW и др. В состав языков высокого уровня (PASCAL, C) включены специальные графические модули, которые могут являться инструментом, как для создания прикладных графических пакетов, так и для создания отдельных графических подпрограмм.
Рассмотрим некоторые основные положения, характерные для большинства графических пакетов и графических модулей.
1.2.1 Координатные пространства
Чтобы получить изображение прикладная программа должна описать для графической системы различные выходные примитивы, указав их положение и размеры в прямоугольной системе координат. Эти координаты по своей природе являются безразмерными, поэтому прикладная программа может задавать объекты в единицах, которые являются естественными для данного приложения и для пользователя. Так, например, размеры детали могут задаваться в миллиметрах, графики изменения температуры во времени (секунды, минуты или часы). Эти прикладные координаты являются координатами пользователя. Поскольку они позволяют отображать объекты в двумерном или трехмерном мире пользователя, их называют мировыми координатами. ГОСТ 27459-87 определяет мировые координаты как "независимые от устройства декартовы координаты, используемые в программах пользователя для задания входных и выходных данных" [5]. Таким образом, объекты могут быть заданы в мировой системе координат как для хранения в прикладной модели, так и с целью описания для графического пакета (ГП). Мировые координаты задаются обычно системой счисления с плавающей запятой.
После того, как объекты описаны для графического пакета в виде совокупности выходных примитивов, ГП формирует изображение объектов на экране, отображая независимые от устройства мировые координаты на логическую систему координат - нормированные координаты, в которых видовая поверхность нормируется действительными числами от 0 до 1 как по координате Х, так и по координате Y. По ГОСТ 27459-87 это "координаты, заданные в промежуточной не зависимой от устройства системе координат и нормированные относительно некоторого диапазона, обычно от нуля до единицы" [5]. Изображение, выраженное в нормированных координатах, располагается в одних и тех же относительных позициях при визуализации на любое устройство. Начало координат (Х=0, Y=0) располагается в левом нижнем (верхнем) углу видовой поверхности.
И, наконец, физические координаты устройства - это координаты, зависящие от устройства и задаваемые в элементах изображения - пикселях (дисплей), миллиметрах (графопостроитель) и т.п.
