Учреждение высшего профессионального образования. Содержание

А.А. Шелестов

 
 
 


КОМПЬЮТЕРНАЯ ГРАФИКА

Учебное пособие

Томск – 2012

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

Федеральное государственное бюджетное образовательное

Учреждение высшего профессионального образования

Томский государственный университет систем управления и

Радиоэлектроники (ТУСУР)

Кафедра автоматизированных систем управления (АСУ)

А.А. Шелестов

КОМПЬЮТЕРНАЯ ГРАФИКА

Учебное пособие

Шелестов А.А.

Компьютерная графика: Учебное пособие. - Томск:

ТУСУР, 2012 (электр. ресурс). – 121 с.

Пособие подготовлено для студентов, обучающихся по специальностям «Программное обеспечение вычислительной техники и автоматизированных систем», «Прикладная информатика в экономике», «Прикладная математика и информатика», «Информатика и вычислительная техника» и др. Пособие может быть также использовано как учебное пособие по самостоятельной работе студентов..

© ТУСУР, каф.АСУ

© Шелестов А.А.

СОДЕРЖАНИЕ

Введение.............................................................................................. 5

1 Системы компьютерной графики на персональных компьютерах6

2 Математические основы компьютерной графики.......................... 21

2.1 Преобразования на плоскости................................................... 21

2.1.1 Матричные операции........................................................... 21

2.1.2 Преобразование точек........................................................ 24

2.1.3 Преобразование с помощью однородных координат......... 26

2.2 Трехмерные преобразования..................................................... 28

2.2.1 Изменение масштаба........................................................... 30

2.2.2 Смещение............................................................................ 30

2.2.3 Вращение вокруг координатных осей.................................. 31

2.2.4 Отображение относительно координатных плоскостей....... 32

2.2.5 Пространственный перенос................................................. 33

2.2.6 Трехмерное вращение вокруг произвольной оси................ 33

2.3 Виды плоских проекций............................................................. 38

2.3.1 Аксонометрические проекции.............................................. 39

2.3.2 Диметрическая проекция..................................................... 41

2.3.3 Изометрия, триметрия......................................................... 43

2.3.4 Косоугольные проекции...................................................... 44

2.3.5 Перспективные преобразования и проекции........................ 45

3 Алгоритмические основы компьютерной графики......................... 51

3.1 Построение реалистических изображений................................. 51

3.2 Простая модель освещения...................................................... 52

3.3 Определение нормали к поверхности........................................ 58

3.4 Определение вектора отражения............................................... 62

3.5 Модель освещения со спецэффектами..................................... 65

3.6 Создание реалистического изображения трехмерных объектов 67

3.6.1 Реализация трехмерного представления объекта и проецирование трехмерного изображения на плоскость............................................................................................. 67

3.6.2 Вращение тела.................................................................... 68

3.6.3 Закраска поверхностей и наложение текстуры на поверхность 69

3.6.4 Удаление невидимых граней................................................ 70

3.7 Закраска методом Гуро............................................................. 74

3.9 Яркость и освещенность........................................................... 77

3.10 Отсечение................................................................................ 77

3.11 Прозрачность.......................................................................... 80

3.12 Тени......................................................................................... 81

3.13 Текстура................................................................................... 84

3.14 Фактура.................................................................................... 84

Контрольная работа по курсу «Компьютерная графика»................. 92

Вопросы по дисциплине "Компьютерная графика"........................... 96

Список литературы............................................................................ 99

Приложение А. Возможности графического представления

в Microsoft Excel................................................... 100


ВВЕДЕНИЕ

В настоящее время в связи с широким внедрением персональных компьютеров во все сферы жизни, резкой интенсификацией процесса научных исследований, революционным совершенствованием его технологии, значительным повышением возможностей аппаратуры все больший интерес вызывают идеи, алгоритмы и средства компьютерной графики (КГ). Спектр использования компьютерной графики чрезвычайно широк: от создания рекламных роликов, компьютерных мультфильмов и игр, кроя одежды, компьютерной живописи до визуализации результатов научных изысканий и конструирования фактически нового инструментария в процессе получения знаний.

Вопросами работы с изображениями на ЭВМ "занимаются" три направления информатики: компьютерная графика, обработка изображений и распознавание образов. Но границы между этими направлениями очень размыты.

Задача компьютерной графики - воспроизведение (синтез) изображений в тех случаях, когда исходная информация имеет неизобразительную природу. Примеры: график, мультфильмы, компьютерные игры. Изображения, синтезированные на ЭВМ, могут быть как очень простые (линии, точки, простейшие геометрические фигуры), так и очень сложные (трехмерные, создающие эффект глубины, учитывающие прозрачность, моделирующие свойства материалов, например, рисунок, шероховатость поверхности, а также матовость и солнечные блики).

Иногда отдельно говорят об интерактивной компьютерной графике. В этом случае предполагается, что пользователь должен иметь возможность динамически управлять содержанием изображения, его формой, размерами и цветом на экране дисплея с помощью интерактивных устройств взаимодействия (клавиатура, мышь, световое перо и т.д.).

Таким образом, можно сказать, что КГ - это создание, хранение и обработка моделей объектов и их изображений с последующим выводом на различные носители и устройства.

П Р И М Е Ч А Н И Е. Согласно государственным образовательным стандартам (ГОС) студенты должны изучить следующие разделы по дисциплинам:

1. "Компьютерная графика": 1; 2; 3.1; 3.2; 3.6.1; 3.6.2; 3.6.4; 3.12 и выполнить контрольные работы.

2. "Интерактивные графические системы": кроме вышеупомянутых разделов, также полностью изучить раздел 3.


1 СИСТЕМЫ КОМПЬЮТЕРНОЙ ГРАФИКи НА ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРАХ

Системы КГ на ПК можно отнести к нескольким классам, среди которых особо выделяют следующие:

§ деловая или коммерческая графика;

§ иллюстративная графика;

§ инженерная графика;

§ научная графика.

Рассмотрим более подробно систему деловой графики.

Работа с документами является неотъемлемой частью деятельности любого предприятия. От ее эффективной организации во многом зависит успех деятельности. Массовое распространение компьютерной техники позволило автоматизировать делопроизводство.

Для работы с документами самых различных типов и форм сегодня существует целый ряд программ, достаточно простых и быстрых в освоении. Почему выбран пакет Microsoft Office?

Во-первых, это самый популярный как во всем мире, так и в России пакет наиболее необходимых программ. Необходимо отметить, что умение работать с такими приложениями, как Microsoft Word - текстовый редактор, Microsoft Excel - электронные таблицы, Microsoft Access - система управления базами данных и множество других, сегодня - одно из существенных условий для сотрудников офисов большинства компаний и фирм.

Во-вторых, это достаточность и полнота пакета, так как он обеспечивает решение практически всех основных задач автоматизации делопроизводства, а также возможность визуального отображения результатов численных расчетов при компьютерном моделировании в удобной для восприятия форме.

И, наконец, в-третьих, это максимальное удобство использования и простота в работе. Все приложения пакета унифицированы и взаимосвязаны друг с другом.

Системы деловой графики предназначаются для графического изображения данных, хранимых в электронных таблицах или базах данных. Широкое применение персональных компьютеров в управлении предприятиями, в экономических расчетах и имитационном моделировании стимулирует создание систем деловой графики, которые позволяют наглядно отображать соотношение различных числовых показателей в удобной для восприятия форме.

Кроме отображения на дисплее, большинство пакетов деловой графики позволяет создавать “твердые” копии изображений. Это осуществляется на матричных принтерах, на графопостроителях (плоттерах); можно также изготавливать черно-белые или цветные слайды, являющиеся фотокопиями изображений на экране.

Большинство пакетов деловой графики позволяет немедленно после ввода исходных данных и выбора способа представления получать на экране дисплея изображения диаграмм, гистограмм или графиков, отображающих эти данные. При этом изображение сопровождается заранее подготовленными текстовыми комментариями и разметкой, которые располагаются в фиксированных местах экрана. Работа с использованием таких пакетов проста, оперативна и требует на подготовку минимум времени. Однако возможности изменение структуры изображения и относительного размера различных компонентов в этом случая ограничены.

Более развитые пакеты деловой графики дают возможность пользователю не только выбирать способ отображения данных, но и варьировать размер, относительное расположение различных частей изображения на экране дисплея, дополнять это изображение декоративными элементами, хранящимися в библиотеке. Кроме того, большинство пакетов, относящихся к этой группе, позволяют применять различные трансформации отдельных элементов изображения, такие как получение зеркального отображения, вращение, вытягивание вдоль одной из осей, наложение двух и более изображений друг на друга. Все это позволяет делать изображения разнообразными, непохожими одно на другое, подчеркивать графическими средствами одни стороны отображаемой информации, затенять другие. Однако за все это приходится платить необходимостью применения многих команд при формировании изображения, что существенно увеличивает время, затрачиваемое на получение одного изображения.

Исходные данные для отображения с помощью пакета деловой графики в простейшем случае включают:

§ двумерный массив числовых данных, подлежащих отображению (некоторые пакеты допускают изображение трехмерных массивов);

§ текстовую разметку по каждой из осей (размерностей) массива;

§ формат и название единицы измерения;

§ общий текстовый комментарий к отображаемой информации.

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

Таблица 1.1 - Сезонный спрос на верхнюю одежду

  Костюмы Платья Плащи Пальто
Январь 24,5      
Февраль        
Март   12,3   -2
Апрель       74,4
Май        

Здесь разметка одной оси задается словами, входящими в самый левый столбец таблицы: Январь, Февраль, Март, Апрель, Май.

Разметка второй оси соответствует верхней строке таблицы: Костюмы, Платья, Плащи, Пальто.

Формат единицы измерения: ххх.хх.

Название единицы измерения: тыс.шт.

Общий текстовый комментарий: Сезонный спрос на верхнюю одежду.

Происхождение исходных данных для пакета деловой графики безразлично, - они могут поступать из электронной таблицы, из базы данных или даже из обычного текстового файла. Важно лишь, чтобы указанные данные поступили на вход пакета деловой графики в определенном формате.

Наиболее распространенными формами графического отображения данных являются столбиковые диаграммы (гистограммы) с вертикальной или горизонтальной ориентацией столбцов, круговые диаграммы и линейные графики. Практически все пакеты деловой графики позволяют формировать на экране дисплея эти типы изображений. Различия заключаются в основном в технических деталях - максимальном количестве столбцов, круговых секторов или линий которые могут быть выведены на экран одновременно. Рассмотрим, как можно отобразить приведенные выше исходные данные с помощью гистограмм, круговых диаграмм и линейных графиков.

Гистограммы. Гистограммы представляются в виде групп столбцов, высоты которых пропорциональны определенным числовым значениям. Число групп в одной гистограмме обычно колеблется от трех до десяти, каждая группа может состоять из столбцов (обычно не более десяти). Разные группы соответствуют различным значениям вдоль одной оси исходного массива данных, а столбцы в пределах каждой группы упорядочены в соответствии с другой осью исходного массива. Для приведенного выше примера диаграмма может иметь вид, представленный на рис. 1.1. Такая гистограмма получается при работе пакета деловой графики Microsoft Graph. На данной гистограмме группы столбцов соответствуют горизонтальной оси (видам товаров), а в пределах каждой группы упорядоченность столбцов соответствует вертикальной оси (распределению спроса на товары по месяцам). Однако взаимное соответствие между осями исходного массива (колонками / строками исходной таблицы) и группами / столбцами гистограммы может изменяться по усмотрению пользователя. Это осуществляется транспонированием исходного массива перед началом построения.

Рис. 1.1 - Гистограмма

На экране цветного дисплея столбцы имеют разную окраску, а на монохромном дисплее, также как и при черно-белой печати, окраска изображается разными интенсивностями черного цвета и штриховкой. В правой части гистограммы на рис.1.1 выведена табличка, в которой расшифровывается окраска столбцов. Такая расшифровка иногда называется “легендой”.

В некоторых пакетах деловой графики предусматривается несколько способов построения столбиковых диаграмм. В частности, столбцы могут быть сегментированы по высоте, в этом случае каждый сегмент имеет свою окраску и отображает значения величин по третьей оси исходного массива данных. При другом способе построения диаграммы столбцы в пределах каждой группы как бы частично перекрывают друг друга, благодаря чему удается отобразить большое число групп или большое число столбцов в группе.

При чрезмерно большом числе групп, столбцов или сегментов восприятие данных из-за обилия мелких деталей бывает затруднено, поэтому многие пакеты ограничивают максимальное число столбцов в группе десятью - пятнадцатью, а число столбцов или сегментов в одном столбце пятью - десятью. Однако имеется несколько коммерческих пакетов, которые могут оперировать с 60 и большим числом групп. При этом одна группа столбцов отображается в виде гистограммы на экране дисплея, а все остальные в это время хранятся в памяти.

Круговые диаграммы. В круговой диаграмме значения величин отображаются в виде секторов круга, углы которых пропорциональны значениям отдельных элементов данных. Секторы обычно раскрашиваются или штрихуются, так чтобы их можно было отличить друг от друга. Один круг позволяет отобразить одну строку или колонку исходного массива данных. Для отображения двумерных массивов используются несколько круговых диаграмм, располагающихся на экране таким образом, чтобы дать пользователю возможность сопоставить их между собой.

На рис. 1.2 представлены три круговые диаграммы, полученные с помощью пакета Microsoft Graph и отображающие данные из трех строк приведенного выше исходного массива.

Рис.1.2 - Круговые диаграммы

Как и в случае столбиковых гистограмм, можно перед началом построения транспонировать исходный массив, т. е. отображать в каждом круге не строку, а столбец исходного массива.

В других пакетах деловой графики применяются диаграммы с вырезанием отдельных секторов. При этом выделенный сектор как бы слегка выдвигается из круга. Большинство пакетов позволяют делить круг диаграммы на 10-20 секторов, представляющих соответствующие величины.

Попытки разнообразить диаграммы для улучшения их визуального восприятия и повышения информативности привели к использованию в некоторых пакетах трехмерных диаграмм, которые имеют вид цилиндров с возможностью выдвигания секторов от оси цилиндра. Этот способ как бы комбинирует представление данных с помощью круговых диаграмм и гистограмм. При этом в каждом цилиндре используются две переменные для представления информации - одна соответствует угловым величинам секторов у основания цилиндра (как и в обычной круговой диаграмме), другая - длинам образующих для каждого сектора (подобно столбцам гистограммы). Основное достоинство такого способа представления данных заключается в его визуальной привлекательности, в возможности внести большое разнообразие в изображение, особенно если приходится просматривать большое количество информации.

Линейные графики. В линейном графике происходит отображение исходных величин в виде точек, соединенных отрезками прямых линий. На рис. 1.3 приведен пример отображения вышеприведенных данных с помощью линейных графиков.

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

Прямые отрезки, соединяющие разные значения одной и той же величины, образуют линейный график. Графики разных величин на экране проводятся разноцветными линиями или же снабжаются специальными значками - пометками, которые расшифровываются в соответствующей табличке.

С помощью линейных графиков наиболее естественно отображаются также и функциональные зависимости одних величин от других. В этом случае по оси абсцисс откладываются значения независимого параметра, а по оси ординат - зависимого. Вместо исходного массива может быть задана функция и вектор числовых значений независимого параметра. Пакет деловой графики в этом случае должен обеспечивать вычисление заданной функции.

Рис. 1.3 - Линейный график

Большинство пакетов допускает одновременное отображение на графике одном графике 5 - 6 линий. Однако некоторые из них позволяют строить двадцать и даже более функциональных зависимостей. При этом каждая линия может формироваться несколькими десятками точек.

Помимо рассмотренных выше основных способов представления числовой информации - в виде гистограмм, круговых диаграмм и линейных графиков, в последнее время получают распространение несколько новых, менее привычных способов. Рассмотрим некоторые из них.

Временные диаграммы. Временные диаграммы или, так называемые, графики Ганта применяются когда нужно изобразить последовательность взаимосвязанных операций или процессов определенной длительности. Окончание одних операций вызывает начало других, а некоторые операции могут выполняться одновременно. Ход такого графика позволяет проследить очередность выполнения операций и приближение к конечной цели.

На рис. 1.4 приведен пример временной диаграммы.


Рис. 1.4 – График Ганта: последовательность и длительность операций некоего технологического цикла

С помощью таких графиков можно изображать течение во времени и взаимосвязь нескольких динамических процессов. На экране дисплея временная диаграмма такого типа изображается в виде цепочек горизонтальных линий в прямоугольной системе координат: по оси абсцисс откладываются единицы времени (дни, месяцы, годы и др.), а равномерно по оси ординат - названия соответствующих операций или процессов. Длина и расположение каждой линии определяется длительностью и временем начала данной операции. Некоторые пакеты позволяют строить графики такого вида для 10 - 12 операций. Общее число графиков может достигать 50, при этом на экране дисплея может изображаться либо один, либо несколько наложенных друг на друга графиков.

Структурные схемы. Данный способ графического представления ориентирован на построение структурных схем сложных объектов. По внешнему виду такая схема напоминает дерево. Ветви дерева (блоки) соответствуют определенным объектам; они изображаются прямоугольниками или кругами, внутри которых помещаются поясняющие надписи. Блоки соединяются между собой линиями, которые соответствуют тем или иным связям между объектами. С помощью такого метода можно отображать структуру самых разных систем. Это может быть, например, архитектура компьютера, структура управления промышленным предприятием и др. Некоторые пакты позволяют разместить на схеме одновременно до 50 блоков. При этом максимальное число линий, соединяющих блоки, может доходить до 80. Для обозначения каждого блока на экране дисплея может использоваться один из хранящихся в библиотеке графических символов. Иногда допускается изменение размеров этих символов при сохранении их формы.

Круговые гистограммы. Этот способ отображения позволяет наглядно представить относительные величины объектов, которым на изображении сопоставляются размеры и расположение кругов в прямоугольной системе координат.

Какой тип диаграммы выбрать?

Выбор типа диаграммы зависит от конкретного случая. Для одних данных лучше подойдет секторная диаграмма, а для других более наглядным окажется обычный график.

Если необходимо продемонстрировать развитие какой-либо тенденции во времени, то целесообразно воспользоваться обычным линейным графиком. Для выяснения какая часть денежных средств вложена в те или иные виды ценных бумаг лучше воспользоваться секторной круговой диаграммой.

Ниже перечислены основные типы диаграмм в Excel и рекомендуемые области их применения.

Таблица 1.2 – Области применения диаграмм

Тип диаграммы Для чего ее применять
Гистограмма (столбиковая/линейчатая) Сравнение значений для одного или более набора данных. Например, можно показать какой объем продаж обеспечил каждый из агентов фирмы за некоторый период времени.
Круговая (кольцевая) Соотношение частей одного целого. Например, этнический состав населения региона. Можно показать только одну серию.
Линейный график Тенденция развития или соотношение между значениями за некоторый период времени (по оси Х обычно откладывается время). Часто применяется для отражения биржевых колебаний.
Площади (поверхности) Показывает нарастающие суммы. Можно использовать эту диаграмму для показа объема продаж, и тогда каждая точка даст суммарный объем к данному моменту.
Точечная Показывает корреляцию (совпадение) между несколькими наборами данных, Например, погодой и объёмом продаж.

Сфера приложений деловой графики постоянно расширяется. При этом растет и число конкретных задач, для решения которых необходимы те или иные графические средства. Среди этих задач часто возникают весьма нестандартные, требующие нового подхода. Это стимулирует появление новых форм графического представления данных. Большое внимание в пакетах деловой графики уделяется разнообразию стилей оформления на экране дисплея. Это связано с тем, что деловая графика призвана решать сразу две важные задачи: во-первых, обеспечить быстрый вывод данных в наглядной графической форме, во-вторых, интенсифицировать процесс осмысления данных человеком с целью установления определенных закономерностей. Первая цель достигается упрощением работы с пакетами. Так, например, большая часть пакетов деловой графики ориентирована на извлечение данных из каких-либо стандартных баз данных или электронных таблиц. Вторая цель достигается совершенствованием выразительности пакетов.

Создатели пакетов деловой графики часто больше внимания уделяют средствам, которые позволяют делать изображения более яркими, разнообразными, чем, например, увеличивать число способов представления данных. Некоторые весьма дорогие и совершенные пакеты ограничивают число способов представления гистограмм, диаграмм и графиков, однако предлагают использовать при формировании изображений несколько различных типов обрамлений с возможностью варьирования их размеров. Кроме того, допускается размещение на одном изображении нескольких типов графиков и диаграмм. При этом можно независимо устанавливать размер каждой детали изображения, вращать их на экране дисплея, получать зеркальные отображения и др.

Еще одним эффективным средством деловой графики является библиотека графических форматов. Графические форматы содержат заранее сформированные изображения, которые с некоторыми изменениями могут быть использованы для представления исходных данных в виде различных гистограмм, диаграмм или графиков. Графические форматы иногда содержат набор профессионально выполненных изображений, которые можно целиком или отдельными частями использовать для того, чтобы украсить и сделать более наглядной представляемую информацию. При этом можно варьировать цветовую гамму, используемую для раскрашивания фона, отдельных деталей изображения, написания сопровождающего текста.

Информация, предназначенная для отображения с помощью пакета деловой графики, должна быть предварительно введена в базу данных, в файл на внешнем носителе или в оперативную память в определенном формате. Для этого могут быть использованы стандартные форматы, которые используются широко распространенными коммерческими пакетами.

Ряд пакетов позволяет производить простейшую обработку данных перед их представлением в графической форме. Такая обработка включает, как правило, вычисление средних значений и стандартных отклонений величин, выполнение простейших арифметических действий.

Изображения, полученные на экране дисплея, могут быть записаны во внешнюю память или выданы на печать. Иногда обеспечивается последовательное появление изображений на экране через заданный промежуток времени (режим “показа слайдов”). Это позволяет иллюстрировать с помощью компьютера лекции и доклады, исключив трудоемкую и длительную операцию изготовления фото- диапозитивов.

Следует сказать несколько слов о графических пакетах, которые входят в состав интегрированных систем. Преимущество таких систем состоит в естественном использовании исходных данных, находящихся в электронной таблице или базе данных интегрированной системы. Как правило, большие интегрированные системы предоставляют пользователям простые средства для построения круговых диаграмм, гистограмм или линейных графиков. Пользователь сначала должен выбрать и отметить на электронной таблице диапазон ячеек, содержимое которых должно быть отображено в виде графика, а затем с помощью нескольких клавишных команд сформировать соответствующий график или диаграмму. Способ вывода согласуется с общим стилем работы в конкретной интегрированной системе. В последнее время графические пакеты интегрированных систем дополняются новыми возможностями, присущими системам иллюстративной графики. Это дает пользователям дополнительные средства для наглядного представления информации и построения удобных прикладных систем.

Все вышеперечисленные возможности предоставляет пользователю интегрированный пакет Microsoft Office, предназначенный для весьма широкого круга задач.

I. Иллюстративная графика. Такие системы используются для создания изображений, которые играют иллюстративную роль. Это могут быть эскизы, географические карты, условные схемы и др. Основные усилия при создании систем такого вида направлены на то, чтобы графические объекты можно было столь же легко формировать и преобразовывать как и массивы чисел с помощью электронных таблиц или тексты при помощи систем подготовки текста. С помощью систем этого типа можно компоновать изображения (накладывать, склеивать), использовать библиотечные изображения различные краски, трафареты.

Выделяют 2 класса объектов иллюстративной графики (ИЛГ):

Векторная графика – изображение на основе регулярных структур. Изображения этого типа определяются на основе простейших геометрических понятий - примитивов (точка, отрезок прямой, прямоугольник, треугольник, окружность и т.п.). Все эти фигуры задаются определенными наборами параметров. Например, для окружности достаточно задать координаты ее центра, радиус и цвет. Для копирования, масштабирования, перемещения или изменения цвета геометрических фигур достаточно присвоить соответствующим параметрам новые значения. Таким образом, здесь каждый элементарный объект задаётся вектором и некоторыми дополнительными параметрами.

Растровая графика – изображение на основе нерегулярных структур. Здесь изображение можно сравнить с картиной художника, которая создаётся методом «свободного» рисования с использованием манипулятора типа «мышь». Изображение строится из множества точек растра. Первая проблема состоит здесь в том, чтобы нарисовать картинку, а вторая – чтобы произвести в ней различные изменения. При помощи систем иллюстративной графики пользователь должен иметь возможность строить изображения путем их компоновки из других, ранее созданных изображений, объединения с текстами и числами, изменения цвета и другие. С этой целью в системе ИЛГ должны быть реализованы следующие функции, позволяющие: «резать», «склеивать» и «стирать» произвольные части изображения; обращаться в библиотеку сформированных изображений и вставлять их во вновь создаваемые рисунки; применять различные инструменты: «кисти», «краски», «трафареты»…; запоминать сформированные иллюстративные материалы на внешних носителях, осуществлять их поиск и воспроизведение. Графические системы ИЛГ должны обеспечивать вывод информации на экран и изготовление «твердых» копий.

К системам иллюстративной графики относится пакет “Corel Draw”, программа MS “Paint Brush”.

II. Инженерная графика. Основное направление её развития связано с автоматизацией чертёжных и конструкторских работ. Для решения задач инженерной графики используются системы автоматизированного проектирования (САПР). Объектами проектирования являются сложные устройства и сооружения: здания, химические и энергетические установки, кузова автомобилей, фюзеляжи самолетов и корпуса судов, печатные платы, микросхемы и т.д. Системы КГ при этом могут служить как для эскизирования, так и для создания точных чертежей.

Подобные системы обязательно должны иметь такие функции, как конструирование объектов (в независимой международной системе) и манипулирование ими (в аппаратно - независимых координатных системах).

Примеры пакетов инженерной графики:

§ «Autocad» - универсальная система;

§ «Modelmaker» - система моделирования объемных объектов.

III. Научная графика. Служит для построения карт и их обработки. Выделяют следующие слои карты: координатную сетку, топооснову (контуры), графическое отображение распределения данных, условные знаки, легенду, позиционное меню. Следовательно, карта является особой разновидностью графического объекта и может служить основой, например, при расчете различных вариантов освоения территорий – при прокладке коммуникаций, размещения промышленных объектов и т.п.

Завершая рассмотрение систем КГ на ПК, назовем еще несколько областей их применения.

Моделирование и мультипликация. Все большую популярность приобретает изготовление с помощью ПК мультфильмов, демонстрирующих поведение различных моделируемых объектов. С помощью мультипликации можно изучать такие явления, как течение потоков жидкости и газа, ядерные и химические реакции, работу физиологических систем, деформацию конструкций под нагрузкой и другие.

Тренажеры. Программы на ПК позволяют моделировать не только неподвижный мир, но и среду, в которой движется, например, самолет, включая такие спецэффекты, как облака, туман, ночные огни и т.д.

При подготовке к посадке на Луну астронавты, которые должны были управлять посадочным модулем и орбитальным комплексом, обучались на тренажере операциям стыковки. До первого полета «Шаттл», его пилоты в течение нескольких лет проводили подготовку на тренажере.

Тренажеры служат также для тренировки операторов сложных энергетических установок, авиадиспетчеров, диспетчеров железнодорожных узлов и т.п.

Управление процессами. На больших предприятиях в условиях гибкого автоматизированного производства графическое отображение технологических процессов позволяет следить за состоянием отдельных станков и целых цехов, информировать персонал о критических ситуациях и служить многим другим целям.

Командиры войсковых соединений видят данные о состоянии поля боя (количество и положение боевых машин, сведения о введенном в бой оружия, перемещения войск, потери) на командно-контрольных дисплеях и по мере надобности пересматривают свою тактику.

Компьютерные издательские системы. С помощью графических систем на основе ПЭВМ существенно упрощается и ускоряется подготовка и изготовление печатных материалов-газет, журналов, книг и т.п. При этом на компьютере можно подбирать шрифты, компоновать страницы, вставлять в текст рисунки и, в конечном счете, автоматически управлять высокопроизводительными установками.

Искусство и реклама. С помощью систем иллюстративной графики с успехом создаются произведения искусства и рекламы. Создатели компьютерныхизображений могут пользоваться развитыми средствами для усиления восприятия создаваемых произведений. Одним из экономически эффективных применений КГ в этой области является изготовление слайдов для представления коммерческой, научной и учебной информации, а также подготовка отдельных информационных и рекламных роликов для телевиденья.

Возможности среды Windows, такие как организация обмена данными и взаимодействие между программами Microsoft Office позволяют оптимально использовать данный пакет в учебном процессе ВУЗа.


2 МАТЕМАТИЧЕСКИЕ ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ

2.1 Преобразования на плоскости

Ниже мы рассмотрим лежащие в основе КГ положения математики, необходимые для представления и преобразования точек и линий.

На плоскости точку представляют с помощью двух ее координат. Их значения можно рассматривать как элементы матрицы: вектор - строки или вектор - столбца . В пространстве каждая точка представляется тремя координатами–аналогично или .

Таким образом, последовательность точек, образующих объект, может быть представлена в виде матрицы чисел. Положением точек можно управлять путем преобразования матриц. В результате многие физические задачи можно привести к следующей формулировке. Пусть даны матрицы А и В и задана их взаимосвязь: АТ = В; необходимо найти матрицу преобразования Т.

С другой стороны, матрицу Т можно рассматривать как оператор, а умножение А на Т - как геометрическое преобразование над системой точек, содержащихся в матрице А. При этом матрицы А и Т должны быть известны. Такая интерпретация является основой математических преобразований, используемых в КГ.

Прежде чем перейти к рассмотрению отдельных видов преобразований, вспомним основные положения матричной алгебры.

2.1.1 Матричные операции

Матрица - это прямоугольный массив чисел размером (m - число строк, n - число столбцов). Если n = m, то матрица называется квадратной. Размер матрицы называется ее порядком. Элементы матрицы называются главными диагональными элементами.

Нулевая матрица – матрица, все элементы которой равны 0.

Единичная матрица – элементы главной диагонали равны 1, а остальные - 0.

Сложение и вычитание. Если две матрицы А и В имеют одинаковый порядок , то допустимо их сложение и вычитание. Результирующая матрица будет иметь тот же порядок. Сложение и вычитание матриц осуществляется поэлементно, то есть если , то

. (2.1)

Умножение. Это самая распространенная матричная операция в КГ. Пусть матрица А имеет размерность , матрица В. Умножение матриц определено только в том случае, если , то есть число столбцов левой матрицы в произведении равно числу строк правой матрицы. Результирующая матрица будет иметь порядок . Значения элементов матрицы определяется следующим образом:

. (2.2)

Например, при умножении матрицы А размером 4´3 на матрицу В размером 3´2 получим матрицу С размером 4´2. Например, элемент матрицы C с номером (3;2) определяется как:

,

то есть как сумма произведений элементов третьей строки матрицы А на соответствующие элементы второго столбца матрицы В.

Важно иметь в виду, что умножение матриц не коммутативно, то есть

.

При этом выполняются левая и правая дистрибутивность относительно сложения А (B +C) = АВ +АС и (А+В) С = АС +ВС

и ассоциативность А (ВС) = (АВ) С = АВС.

Определитель квадратной матрицы. Определитель квадратной матрицы А обозначается . Например, определитель матрицы 2´2 будет:

. (2.3)

Определитель матрицы 3´3

(2.4)

Определитель матрицы

(2.5)

– алгебраическое дополнение матрицы А - это матрица размером , получаемая путем вычеркивания из матрицы А элементов i -ой строки и элементов j -ого столбца;

- определитель матрицы .

Обращение квадратной матрицы. В матричной алгебре операция деления неопределенна. Поэтому в выражении

АТ = В матрица Т определяется как

, (2.6)

в том случае, если А – квадратная матрица.

Матрица называется обратной к А.

Произведение обратных матриц дает единичную матрицу того же порядка:

. (2.7)

Например,

Обратная матрица вычисляется следующим образом

, (2.8)

где – определители алгебраических дополнений, верхний символ “T” означает операцию транспонирования, то есть записи строк столбцами, а столбцов - строками.

Видно, что если , то матрицы не существует. В остальных случаях матрица существует и единственна.

2.1.2 Преобразование точек

Рассмотрим результаты матричного умножения матрицы , определяющей точку Р на плоскости, и матрицы преобразования 2´2 общего вида:

(2.9)

Эта запись означает, что координаты точки Р: (x, y) преобразованы в , где ; . Проведем анализ этого преобразования, рассматривая отдельные частные случаи.

1) a = d = 1, c = b = 0

(2.10)

то есть положение точки Р не изменилось.

2) d = 1, b = c = 0

(2.11)

Получили изменение масштаба по оси x: или перемещение точки Р по оси x. Если a>1, то происходит увеличение масштаба (перемещение вправо); если 0<a<1, то уменьшение масштаба (перемещение влево). Если a<0, то происходят аналогичные изменения, но с отображением относительно оси y.

3) a = 1, b = c = 0

(2.12)

Здесь происходят аналогичные изменения масштаба, но по оси y, и отображение (если d<0) относительно оси x.

4) b = c = 0

(2.13)

Изменение масштаба (перемещение) происходит по обеим осям (если a=d, то координаты пропорционально изменяются), отображение, если a<0 или d<0, то относительно осей y или x соответственно, а если a = d < 0 вместе, то относительно начала координат.

5) a = d = 1, c = 0

(2.14)

Координата x точки не изменяется, а координата y линейно зависит от начала координат. Этот эффект называется смещением.

6) a = d = 1, b = 0

(2.15)

Здесь все аналогично, но смещение происходит вдоль оси x на величину cy.

В заключение отметим, что преобразование общего вида (2.1), примененное к началу координат, не изменяет положения начала координат, т.е.:

(2.16)

Иными словами, начало координат инвариантно к преобразованию 2 ´ 2. Это является недостатком такого преобразования, который будет преодолен введением однородных координат.

2.1.3 Преобразование с помощью однородных координат

Очень часто используемым преобразованием в компьютерной графике является преобразование переноса начала координат. Раньше мы уже убедились, что такое преобразование нельзя реализовать умножением на матрицу 2´2 (начало координат инвариантно к умножению на матрицу 2´2). Эту трудность можно устранить, введя третью компоненту в вектор координат точки и третью строку в матрицу преобразования. Получим:

(2.17)

То есть, введенная третья строка как раз и реализует требуемый перенос.

Однако матрица преобразования 3´2 не является квадратной и, значит, не имеет обратной матрицы. Это часто оказывается неудобным. Поэтому дополним ее до квадратной матрицы, получим:

(2.18)

Итак, теперь мы имеем трехмерный вектор координат точки на плоскости и матрицу преобразования размера 3´3.

В случае произвольных значений элементов матрицы 3´3 получим вектор преобразованных координат вида [ x y h ].

Представление двумерного вектора трехмерным или, в общем случае, представление n -мерного вектора (n+1)-мерным называется однородным координатным воспроизведением; координаты x, y, h - однородными координатами.

Однородные координаты интерпретируются как результат масштабного преобразования точки [ x y ], лежащей в плоскости

z = 1, в точку [ x y ] в плоскости z= h. При однородном координатном преобразовании n - мерного вектора оно выполняется в (n+1) -мерном пространстве, а конечные результаты в n -мерном пространстве получают как:

. (2.19)

Очевидно, что для любой точки на плоскости существует бесконечное множество однородных координатных представлений . Например, однородные координаты (12,8,4), (6,4,2), (3,2,1) представляют одну и ту же точку (3,2). Отметим, что все преобразования матрицей 2´2 (вращение, отображение, покоординатное масштабирование, смещение) реализуются в однородных координатах с помощью матрицы:

(2.20)

, (2.21)

то есть результат тот же, что и для матрицы 2´2:

(2.22)

Введение однородных координат и применение матрицы преобразования 3´3 общего вида

дает довольно много дополнительных преимуществ.

Влияние элементов m, n третьей строки матрицы 3´3 мы уже рассмотрели - они реализуют перенос. Рассмотрим влияние элементов третьего столбца: p, q, s.

1) матрица , тогда

(2.23)

(2.24)

Видно, что элемент s реализует полное изменение масштаба (при s>1 – уменьшение; при s<1 – увеличение), то есть то же самое, что реализуется в случае использования обычных координат и матрицы 2´2 вида

2) матрица

В общем виде

(2.25)

(2.26)

2.2 Трехмерные преобразования

Процесс вывода трехмерной графической информации по сути своей является более сложным, чем соответствующий двумерный процесс. Это связано с тем, что экран ЭВМ - это плоскость, и в процессе визуализации трехмерная информация должна быть преобразована в двумерную. Это осуществляется с помощью проекций. При этом преобразования трехмерной информации естественно осуществлять в трехмерном пространстве и построение проекций производить лишь непосредственно перед визуализацией.

Рассмотрим сначала способы преобразования трехмерной информации. Для этого обобщим результаты, полученные для плоскости, на трехмерный случай.

Точка в трехмерном пространстве с использованием однородных координат представляет собой четырехмерный вектор или .

Преобразование однородных координат описывается соотношениями

,

где Т – матрица преобразования.

Обобщенная матрица Т для однородных трехмерных координат имеет порядок 4´4 и записывается как

Эта матрица может быть представлена как совокупность четырех частей:

матрица осуществляет покоординатное изменение масштаба, смещение и вращение;

матрица - перенос;

матрица - преобразования в перспективе;

матрица - общее изменение масштаба.

Иногда преобразование матрицей T размера 3´3 для плоских однородных координат называется линейным. Соответственно, преобразование матрицей T размера 4´4 для однородных трехмерных координат называется билинейным.

Рассмотрим подробнее эти преобразования.

2.2.1 Изменение масштаба

Покоординатное изменение масштаба выполняется с помощью диагональных элементов матрицы T:

(2.27)

Таким способом можно, например, преобразовать параллелепипед в куб:

Общее изменение масштаба - либо

(2.28)

либо

(2.29)

Результат, как видим будет тот же самый.

2.2.2 Смещение

За преобразование смещения "отвечают" недиагональные элементы верхней левой подматрицы 3x3

(2.30)

2.2.3 Вращение вокруг координатных осей

Вспомним, что на плоскости вращение вокруг оси, проходящей через начало координат и перпендикулярной плоскости, осуществлялось матрицей

Положительным направлением является направление против часовой стрелки (если смотреть вдоль этой оси к началу координат!). В трехмерном случае вращение вокруг оси x:

то есть первая строка и первый столбец имеют вид

Примеры:

,

,

,

Вокруг оси y – аналогично:

Вокруг оси z:

Положительное направление по-прежнему определяется как направление против часовой стрелки, если смотреть вдоль оси, вокруг которой осуществляется вращение, к началу координат. Отметим, что вследствие не коммутативности умножения матриц при выполнении композиции вращения порядок преобразований существенен (в отличии от вращения на плоскости).

2.2.4 Отображение относительно координатных

плоскостей

Отображение относительно плоскости X0Y меняет лишь знак Z -координаты точек. Таким образом,

– отображение относительно X0Y.

– отображение относительно X0Z.

– отображение относительно Y0Z.

2.2.5 Пространственный перенос

Трехмерный линейный перенос изображения определяется выражением:

(2.31)

откуда

, (2.32)

то есть

. (2.33)

2.2.6 Трехмерное вращение вокруг произвольной оси

В двумерном случае вращение вокруг произвольной оси осуществлялось путем композиции преобразований:

- переноса начала координат в точку пересечения оси вращения с плоскостью XY;

- вращения вокруг оси;

- переноса начала координат в исходное состояние.

При этом ось вращения должна быть перпендикулярна плоскости X0Y.

В трехмерном случае ставится задача вращения вокруг произвольной оси в трехмерном пространстве. Как и для плоскости, метод заключается в последовательном выполнении переноса, вращения вокруг оси, проходящей через начало координат и обратного переноса.

При этом, однако, ось, проходящая через начало координат, может иметь произвольное направление.

Итак, если ось, вокруг которой выполняется вращение, проходит через точку , то матрица преобразования однородных координат определяется как

Определим элементы матрицы вращения R.

Некоторые сведения из математики. Направление произвольной оси, проходящей через начало координат, удобно определять через так называемые направляющие косинусы. Единичный вектор направления задается как

(2.34)

где - направляющие косинусы,

или в векторной форме

(2.35)

Скалярное произведение вектора n на произвольный вектор Р определяется как

(2.36)

(результатом будет число)

Если , то

(2.37)

Векторное произведение в системе координат (i, j, k) задается как

(2.38)

или в матричной форме

(2.39)

При этом справедливо выражение

(2.40)

Направление вектора перпендикулярно плоскости nОP. Теперь вернемся к получению элементов матрицы вращения R.

Здесь

Для получения элементов матрицы R необходимо координаты точки выразить через координаты точки P, угол поворота и направление оси вращения n.

(или ) (2.41)

(2.42)

(или ) (2.43)

Из (2.43) следует

Далее

Поскольку направления QS и QP совпадают, то


.

Объединяя (2.41) и (2.42), получим

(2.44)

Длина вектора

Направление вектора перпендикулярно плоскости QОP, то есть параллельно вектору .

Единичный вектор в этом направлении определяется соотношением

Таким образом,

При этом:

.

Следовательно:

Перепишем (2.44):

(2.45)

Величина Q определяется , направление Q совпадает с n, так как:

.

Тогда перепишем (2.45)

(2.46)

Таким образом, мы выразили координаты точки через координаты точки P, угол Q и вектор n.

Результат в матричной форме представлен в (2.47). С использованием однородных координат и произведя некоторые преобразования получим (2.48). Выражение в фигурных скобках как раз и позволяет получить требуемую матрицу вращения R (2.49).

В качестве примера рассмотрим вращение на угол Q вокруг оси Z. При этом

то есть это тот же самый результат, который был получен ранее.

2.3 Виды плоских проекций

В технических чертежах применяются параллельные проекции, а перспективные обычно используют художники и архитекторы для изображения общих планов. Черчение с применением перспективных проекций более или менее сложных объектов довольн


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: