лекции. Лекции по компьютерной графике(ИСиТ-1 курс). Связь традиционной и компьютерной графики, с одной стороны, определяет
Скачать 0.87 Mb.
|
4 1. Введение Компьютерная графика – использование вычислительной техники для создания графических изображений, их отображения различными средствами и манипулирования ими. Как следует из определения – компьютерным (цифровым) может быть названо изображение, созданное с помощью компьютерной программы. Первоначально программисты научились получать рисунки в режиме символьной печати. На бумажных листах с помощью символов (звёздочек, точек, крестиков, букв и др.) получались рисунки, напоминающие мозаику. Так печатались графики функций, изображения течений жидкостей и газов, изображения электрических и магнитных полей т.д. С помощью символьной печати программисты умудрялись получать даже художественные изображения. В редком компьютерном центре стены не украшались распечатками с портретами Эйнштейна, репродукциями Джоконды и другой « машинной живописью». Затем появились специальные устройства для графического вывода на бумагу – графопостроители (плоттеры). С помощью такого устройства на лист бумаги чернильным пером наносятся графические изображения: графики, диаграммы, технические чертежи и прочее. Но настоящая революция в компьютерной графике произошла с появлением графических дисплеев. На экране графического дисплея стало возможным получать рисунки, чертежи в таком же виде, как на бумаге с помощью карандашей, красок, чертёжных инструментов. Связь традиционной и компьютерной графики, с одной стороны, определяет 5 применение множительной техники. С другой стороны, можно найти еще одно объяснение возникновению термина «графика» применительно к работе художника-компьютерщика. Слово графика означает изображение линиями, штрихами, точками. А все графические компьютерные программы принципиально разделяются на два типа: векторные (изображение строится линиями) и растровые (изображение пятном из точек), то есть, каким бы сложным ни казалось изображение, созданное в компьютере, по своей сути, любое из них относится к графике. Изменилась именно техника, и с появлением компьютера произошла настоящая революция в производстве изобразительной продукции. 2. Виды компьютерной графики Несмотря на то, что для работы с компьютерной графикой существует множество классов программного обеспечения, различают всего три вида компьютерной графики. Это растровая графика, векторная графика и фрактальная графика. Они отличаются принципами формирования изображения при отображении на экране монитора или при печати на бумаге. Правомерна и другая классификация. Двухмерная графика – изображение, имеющее два измерения, то есть лежащее на плоскости. Основа компьютерной графики, в том числе и трехмерной. Трехмерная (3D) графика – построение на компьютере, с помощью специальных программ, пространственной модели, состоящей из простых и сложных геометрических форм, присвоение этой модели фактуры, цвета, степени прозрачности и матовости, придание ей и условной камере движения в виртуальном пространстве, расстановка в этом пространстве источников 6 света и, наконец, просчет выстроенной сцены. Применяется при создании компьютерных игр, рекламы и т.д. 3. Области применения компьютерной графики Современное применение компьютерной графики очень разнообразно. Рассмотрим основные области применения компьютерной графики. Научная графика – это направление появилось самым первым. Назначение - визуализация (наглядное изображение) объектов научных исследований, графическая обработка результатов расчётов, проведение вычислительных экспериментов с наглядным представлением их результатов. Деловая графика – область компьютерной графики, предназначенная для создания иллюстраций, часто используемых в работе различных учреждений. Плановые показатели, отчётная документация, статические сводки - вот объекты, для которых с помощью деловой графики создаются иллюстративные материалы. Чаще всего это графики, круговые и столбчатые диаграммы. Конструкторская графика – используется в работе инженеров-конструкторов. Этот вид компьютерной графики является обязательным элементом систем автоматизации проектирования (САПР). Графика в САПР используется для подготовки технических чертежей проектируемых устройств. Графика в сочетании с расчётами позволяет проводить в наглядной форме поиск оптимальной конструкции, наиболее удачной компоновки деталей, прогнозировать последствия, к которым могут привести изменения в конструкции. Средствами конструкторской графики можно получать плоские изображения (проекции, сечения) и пространственные, трёхмерные изображения. 7 Полиграфия – совокупность технических средств для множественного репродуцирования текстового материала и графических изображений. Специалист, работающий в этой области, должен не только знать программы верстки и графические редакторы, но и разбираться в допечатной подготовке издания. Web- дизайн – оформление web-страниц. Он играет такую же роль для сайта, как полиграфический дизайн и верстка для бумажного издания. Часто под web- дизайном понимают не только создание графических элементов для сайта, но и проектирование его структуры, навигации, то есть создание сайта целиком. Мультимедиа – область компьютерной графики, связанная с созданием интерактивных приложений (дающих возможность активно влиять на содержимое и направленность), энциклопедий, справочных систем, обучающих программ и интерфейсов к ним. 4. Настольные издательские системы Понятие настольная издательская система (Desktop Publishing) включает в себя все технические и программные аспекты компьютерной графики. Можно выделить, как минимум, три основных уровня, наличие которых обеспечивает надежное функционирование системы. o Аппаратный уровень (hardware level) представляет собой совокупность материальных элементов – устройств, с помощью которых происходят ввод, обработка, хранение, передача и вывод информации. o Программный уровень (software level) – это совокупность информационных элементов (программ и их команд), с помощью которых осуществляется управление как собственно текстовой и 8 изобразительной информацией, так и аппаратным оборудованием. o Пользовательский уровень (brainware level) представляет собой совокупность творческих индивидуумов, высококлассных специалистов и обычных пользователей, которые интегрируют свой творческий потенциал, а также аппаратный и программный уровни для создания творческих произведений. 4.1. Аппаратный уровень В свою очередь состоит из следующих компонентов: o устройства ввода информации (input devices) – обеспечивают преобразование любых видов информации на разнообразных носителях в цифровую форму, что создает условия для ее дальнейшей компьютерной обработки; o устройства обработки, хранения и передачи информации (process, storage and transfer devices) – ядро аппаратного уровня; o устройства вывода информации (output devices) – устройства, обеспечивающие перевод цифровой информации в форму, понятную и доступную человеку. Устройства ввода информации Главным признаком устройств ввода является преобразование одного вида информации (изображений на «твердом носителе») в иной вид, в нашем случае в цифровую форму. К таким устройствам относятся: o клавиатура (keyboard); o мышь (mouse); 9 o трекбол (trackball); o сканер (scaner); o цифровая камера (digital camera); o графический планшет (graphics tablet); o дигитайзер (digitizer); o и т.д. Устройства обработки, хранения и передачи информации В большинстве случаев речь идет об аппаратном уровне компьютера, который представляет собой многоуровневую структуру. Устройство обработки – процессор, видеопроцессор. Устройства хранения информации: o оперативное запоминающее устройство (RAM); o память видеокарты; o магнитные носители (FDD, HDD); o оптические носители(CD, DVD и т.д.); o магнитооптические носители (MO, MOD Drive); o сменные диски и носители (flash-накопители); o ленточные накопители (стример, mini DV); o и т.д. Устройства передачи – порты и другие компоненты. Устройства вывода информации Устройства вывода выполняют функцию, обратную вводу информации, и 10 обеспечивают преобразование цифровой информации в понятный человеку вид – визуальные образы. В зависимости от способа визуализации можно выделить два основных класса: o средства электронной визуализации (мониторы, проекторы); o средства физического вывода (струйные, лазерные и фотопринтеры, графопостроители, фотонаборные автоматы). 4.2. Программный уровень Сам по себе компьютер не выполняет никаких действий. Любая последовательность действий определяется алгоритмами, заложенными в программах. Можно выделить следующие основные классы программного обеспечения: o редакторы растровой (пиксельной) графики; o редакторы векторной графики; o редакторы трехмерной графики; o программы фрактальной графики; o программы верстки; o вспомогательные программы (операционная система, утилиты, plug-in, viewer, конверторы, браузеры, архиваторы и многие другие). 4.3. Пользовательский уровень Эстетическая и художественная составляющие не являются частью тех- нических систем. Человек, сидящий за компьютером, и есть поль- зовательский уровень. 11 5. Система координат и типы преобразования графической информации 5.1. Декартова система координат Для того чтобы уметь синтезировать изображения на экране компьютера, необходимо предложить способ математического описания объектов в трехмерном пространстве или на плоскости. Окружающий нас мир с точки зрения практических приложений описывают как трехмерное евклидово пространство. Под описанием трехмерного объекта будем понимать знание о положении каждой точки объекта в пространстве в любой момент времени. Положение точек в пространстве удобно описывается с помощью декартовой системы координат. Для того чтобы ввести декартову систему координат, проведем три направленные прямые линии, не лежащие в одной плоскости, которые называются осями, в трехмерном пространстве так, чтобы они пересекались в одной точке – начале координат. Выберем на этих осях единицу измерения. Тогда положение любой точки в пространстве будем описывать через координаты этой точки, которые представляют собой расстояния от начала координат до проекций точки на соответствующие оси координат. Проекцией точки на координатную ось называется точка пересечения плоскости, проходящей через заданную точку, и параллельной плоскости, образованной двумя другими осями координат. Например, на рис. 5.1 проекцией точки P на ось Ox является точка Q , которая принадлежит плоскости, параллельной плоскости zOy В общем случае оси системы координат могут располагаться под произвольными углами друг относительно друга. Для практических расчетов гораздо удобнее, когда эти оси расположены взаимно перпенди- 12 кулярно. Такая система координат называется ортогональной. Рис. 5.1. Нахождение координаты x Q = точки P Таким образом, положение в пространстве точки P описывается ее координатами, что записывается как P =( , , x y z ). Взаимное расположение осей в ортогональной системе координат в трехмерном пространстве может быть двух видов. Проведем ось Ox слева направо, а ось Oy снизу вверх, как показано на рис. 5.2. Рис. 5.2. Левосторонняя и правосторонняя системы координат 13 Ось Oz при этом может проходить как в направлении от наблюдателя в плоскость листа, так и от плоскости листа к наблюдателю. В первом случае система координат будет называться левой или левосторонней, а во втором случае – правой или правосторонней. Декартовы координаты точек позволяют описывать статичное положение объектов в пространстве. Однако для проведения каких-либо действий над объектами необходимо иметь дополнительные математические конструкции. В качестве одной из таких конструкций применяют радиус-векторы. Радиус-векторы обладают всеми свойствами векторов, но имеют одну особенность: начало радиус-вектора находится всегда в начале координат, а конец радиус-вектора лежит в некоторой точке пространства. Это свойство радиус-векторов позволяет поставить во взаимно однозначное соответствие всем точкам пространства соответствующие им радиус-векторы. Рассмотрим теперь каким образом можно использовать координаты точек и радиус-векторы для описания прямых и плоскостей в трехмерном пространстве. Под описанием прямой понимаем знание того, принадлежит ли точка с заданными координатами нашей прямой или нет. То есть, нужно получить некую математическую зависимость или уравнение прямой. Во-первых, известно, что две различные точки определяют в пространстве прямую. Выберем в пространстве две точки 1 P =( 1 1 1 , , x y z ) и 2 P =( 2 2 2 , , x y z ) и соответствующие им радиус-векторы 1 p , 2 p и проведем через них прямую, как показано на рис. 5.3. Проведем от точки 1 P к точке 2 P вектор * 2 1 p p p = − Тогда радиус-вектор p , определяющий некоторую точку на прямой, можно получить сложением, 14 например, вектора 1 p и вектора * p , умноженного на некоторое число μ Или * 1 p p p μ = − Фактически мы уже получили уравнение прямой, но не через координаты двух точек на прямой, а другим способом, с помощью так называемых базового радиус-вектора 1 p и направляющего радиус-вектора * p Преобразуем это уравнение к виду в котором используются только координаты двух исходных векторов 1 p и 2 p : * 1 1 2 1 1 2 1 ( ) ( ) p p p p p p p p p p μ μ μ = + = + − ⇒ − = − Рис. 5.3. Вывод уравнения прямой в трехмерном пространстве Из этого векторного равенства получаем три равенства для соответствующих координат: 1 2 1 1 2 1 1 2 1 - ( ), - ( - ), - ( - ). x x x x y y y y z z z z μ μ μ = − ⎧ ⎪ = ⎨ ⎪ = ⎩ Попарно разделив эти уравнения друг на друга, для того чтобы избавится от P 1 P 2 P* y z x 0 15 коэффициента μ , получаем следующую систему уравнений, определяющую прямую в трехмерном пространстве: 1 2 1 2 1 1 1 2 1 2 1 1 1 2 1 2 1 1 ( - )( - ) ( - )( - ), ( - )( - ) ( - )( - ), ( - )( - ) ( - )( - ). x x y y x x y y y y z z y y z z z z x x z z x x = ⎧ ⎪ = ⎨ ⎪ = ⎩ Необходимо научиться управлять изображением на экране, вносить изменения в его положение, форму, ориентацию, размер. Для этих целей существуют специальные геометрические преобразования, которые позволяют изменять эти характеристики объектов в пространстве. 5.2. Двумерные матричные преобразования Рассмотрим преобразования координат точек на плоскости. На рис. 5.4 точка A перенесена в точку B Рис. 5.4. Операция переноса или трансляции точки A в точку B Математически этот перенос можно описать с помощью вектора переноса AB Пусть R радиус-вектор, соответствующий вектору переноса AB 16 Тогда переход из точки A в точку B будет соответствовать векторной записи B A R = + Отсюда получаем, что для переноса точки в новое положение необходимо добавить к ее координатам некоторые числа, которые представляют собой координаты вектора переноса: , , x x y y z z B A R A R A R A R ⎡ ⎤ ⎣ ⎦ = + = + + + Масштабированием объектов называется растяжение объектов вдоль соответствующих осей координат относительно начала координат. Эта операция применяется к каждой точке объекта, поэтому можно также говорить о масштабировании точки. При этом, конечно, речь не идет об изменении размеров самой точки. Масштабирование достигается умножением координат точек на некоторые константы. В том случае, когда эти константы равны между собой, масштабирование называется однородным. На рис. 5.5 приведен пример однородного масштабирования треугольника ABC Рис. 5.5. Операция масштабирования После применения операции однородного масштабирования с коэффициентом 2 он переходит в треугольник ' ' ' A B C Обозначим матрицу 17 масштабирования: 0 0 x y S S S ⎡ ⎤ ⎢ ⎥ ⎢ ⎥ ⎣ ⎦ = Для точек A и ' A операция масштабирования в матричном виде будет выглядеть следующим образом: 0 ', ' , 0 x y S x y x y S ⎡ ⎤ = ⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎣ ⎦ ⎣ ⎦ ⎢ ⎥ ⎣ ⎦ Рассмотрим далее операцию вращения точки на некоторый угол относительно начала координат. На рис. 5.6 точка ( , ) A x y = переходит в точку ( ', ') B x y = поворотом на угол α Рис. 5.6. Операция поворота точки A на угол α Найдем преобразование координат точки A в точку B Обозначим β угол, который составляет радиус-вектор A с осью Ox Пусть r – длина радиус- вектора A , тогда 18 ( ) ( ) ' cos cos cos -sin sin x r r α β α β α β = × + = × × , ( ) ( ) ' sin sin cos cos sin y r r α β α β α β = × + = × + × Так как cos x r β = и sin y r β = , то подставляя эти выражения в уравнения для ' x и ' y , получаем: ' cos - sin x x y α α = × × , ' sin cos y x y α α = × + × В матричном виде вращение точки A на угол α выглядит следующим образом: cos sin ', ' , -sin cos x y x y α α α α ⎡ ⎤ = ⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ |