Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save anonymous/009ea175a4b8511185ae57dfa8da7b1a to your computer and use it in GitHub Desktop.
Save anonymous/009ea175a4b8511185ae57dfa8da7b1a to your computer and use it in GitHub Desktop.
Понятие графического примитива

Понятие графического примитива


Понятие графического примитива



Графические примитивы как основа изображений
Тема: Построение графических примитивов
Графические примитивы и работа с ними


























Основные понятия компьютерной графики. Геометрическое моделирование и решаемые ими задачи. Обзор программных продуктов для работы с компьютерной графикой. Графический редактор Adobe Photoshop. Графический редактор CorelDraw X4. Основы моделирования трехмерных сцен. Компьютерная анимация в среде Adobe Flash CS4. Графические возможности Turbo Pascal применительно к фрактальным объектам. Прочитав этот материал, Вы будете:. При изучении материала, обратите внимание на следующие основные термины и понятия, которые необходимо запомнить:. Специальную область информатики, занимающуюся методами и средствами создания, преобразования, обработки, хранения и вывода на печать изображений с помощью цифровых вычислительных комплексов, называют компьютерной графикой. Развитие компьютерной графики как самостоятельной области информатики началось в девяностых годах прошлого столетия. Этому способствовало, с одной стороны, резкое повышение технических характеристик емкость запоминающих устройств, быстродействие и разрядность процессора, возможность работы с массивами чисел, представленных в форме с плавающей запятой и понижение стоимости аппаратного обеспечения, с другой стороны, появление адаптированного к работе с графикой как базового, так и прикладного программного обеспечения. За последнее десятилетие диапазон применения компьютерной графики существенно расширился. К примеру, ранее ее могли использовать только специалисты, работающие в некоторых предметных областях:. В наше время CGI-образы от слов Computer Graphics Imagery — изображение созданное на компьютере окружают нас повсеместно: Компьютерная графика превратилась из узкоспециальной области интересов нескольких профессий в дело, которому стремятся посвятить себя множество людей. Компьютерная графика охватывает все виды и формы представления изображений, доступных для восприятия человеком:. В компьютерной графике объекты существуют лишь в памяти компьютера, они не имеют физической формы и представляют собой совокупность цифр, поэтому такие изображения называют цифровыми. Создано разнообразное аппаратное и программное обеспечение для получения изображений самого различного вида и назначения - от простых чертежей до реалистических образов естественных объектов. Конечным результатом применения средств компьютерной графики является изображение, которое может использоваться для различных целей. Компьютерная графика используется для наглядности восприятия и передачи самой разнообразной информации. Практически не существует демонстрационных слайдов без использования компьютерной графики. Проблема представления накопленной информации например, данных о климатических изменениях за продолжительный период, о динамике популяций животного мира, об экологическом состоянии различных регионов и т. Трехмерные изображения применяются в медицине например, в области компьютерной томографии , картографии, полиграфии и других областях. В медицине в настоящее время широко используются методы диагностики, использующие компьютерную визуализацию внутренних органов человека. Помимо этого применяется и двумерная графика, которую можно отобразить на экране компьютера или графопостроителе. Существуют развитые программные средства автоматизации проектно-конструкторских работ САПР , позволяющие быстро создавать чертежи объектов, выполнять прочностные расчеты и т. Они дают возможность не только изобразить проекции изделия, но и рассмотреть его в объемном виде с различных сторон. Такие средства полезны для дизайнеров интерьера, ландшафта. Интерактивные графические элементы применяются при создании моделирующих систем обучения виртуальных тренажеров. Под моделированием в данном случае понимается имитация различного рода ситуаций, возникающих, например, при движении автомобиля, решении задач управления бизнесом и т. Телевидение и другие отрасли индустрии развлечений используют анимационные средства компьютерной графики компьютерные игры, фильмы. В телевизионной рекламе, в научно-популярных и других фильмах теперь синтезируются движущиеся объекты, визуально мало уступающие тем, которые могут быть получены с помощью кинокамеры. Кроме того, компьютерная графика предоставила киноиндустрии возможности создания спецэффектов, которые в прежние годы были попросту невозможны. В последние годы широко распространилась еще одна сфера применения компьютерной графики - создание виртуальной реальности. Следует отметить важную роль компьютерной графики при создании пользовательских интерфейсов. Компьютерную графику можно классифицировать по нескольким основным признакам Рис. Первым классификационным признаком является количество измерений, используемых при создании и обработке изображения. По этому признаку вся компьютерная графика делится на два класса: Наличие у трехмерных изображений координаты глубины дает возможность взглянуть на них с другого ракурса, не перерисовывая при этом самих изображений. Вторым классификационным признаком является способ формирования изображений , по которому компьютерная графика может быть разделена на растровую, векторную и фрактальную. Основным элементом растровой графики является точка, совокупность точек образует изображение. Векторная графика работает с линиями, которые описываются математически как единый объект. Фрактальная графика, как и векторная, основана на математических вычислениях, однако базовым элементом является сама математическая формула. Третьим признаком является способность динамического изменения изображения. По данному признаку можно выделить два класса: Под интерактивной компьютерной графикой понимают раздел компьютерной графики, изучающий вопросы динамического управления со стороны пользователя содержанием изображения, его формой, размерами и цветом на экране с помощью интерактивных устройств взаимодействия. Четвертым признаком может служить специализация компьютерной графики в отдельных областях. Так, можно выделить инженерную графику, дизайн-графику, Web-графику и другие области. В результате развития современных информационных технологий и посредством объединения компьютерных, телевизионных и кинотехнологий сформировалась относительно новая область компьютерной графики — интерактивная анимационная графика. Все растровые изображения состоят из множества точек. Это наиболее простой способ представления изображения, потому, что именно таким образом видит его наш глаз. Процесс формирования растрового изображения можно сравнить с мозаичным панно, где с помощью одинаковых по форме, но различных по цвету элементов создаются различные образы. Если отойти от мозаичного панно достаточно далеко, отдельные элементы становятся неразличимо малы, и изображение кажется однородным. Точно так же кодируются и растровые изображения в компьютерной графике. Все изображение подобно таблице разбивается по горизонтали и вертикали на мелкие ячейки — точки, каждая из которых принимает усредненный по площади ячейки цвет. При работе с изображением в памяти компьютера запоминается вся таблица именно поэтому растровые изображения всегда прямоугольные и цвет каждой ее точки. Таким образом, в растровых изображениях не существует объектов как таковых. Например, изображение древесного листа описывается конкретным расположением и цветом каждой точки сетки, поэтому при редактировании возникает необходимость работы с каждой конкретной точкой. Пиксел - неделимая точка в графическом изображении. Пиксел характеризуется прямоугольной формой и размерами, определяющими пространственное разрешение изображения Под растровым bitmap, raster понимают способ представления изображения в виде совокупности отдельных точек пикселов различных цветов или оттенков Рис. Это наиболее простой способ представления изображения, потому, что именно таким образом видит его глаз человека. Растровый способ кодирования изображений обеспечивает легкость их ввода с помощью сканеров. Светочувствительный элемент сканера измеряет оптическую плотность сканируемого оригинала рисунка, фотографии, слайда по всей его площади: В результате получается прямоугольная таблица, каждая ячейка которой соответствует измеренному значению цвета. Она представляется точным снимком оригинала в цифровой форме. Каждая ячейка таблицы называется точкой, а вся таблица — растровым изображением. Кроме того, есть мониторы, которые тоже является растровым устройством. Экран монитора покрыт прямоугольной сеткой из точек люминофора. При демонстрации изображения кодированная информация визуализируется с помощью операции, обратной сканированию. Каждой точке изображения ставится в соответствие точка люминофора, называемая пикселем. Пиксель принимает цвет соответствующей ему точке изображения. Поэтому точку цифрового изображения часто отождествляют с пикселем и говорят, что растровое изображение состоит из пикселей. Монитор — не единственное устройство вывода. Изображение можно напечатать на принтере, типографской машине, вывести на фотопленку или фотобумагу. Большинство устройств вывода, как и мониторы, тоже являются растровыми устройствами, и точкам изображения ставятся в соответствие точки этих устройств. Цифровое изображение, находящееся в памяти компьютера не имеет своего физического воплощения, это всего лишь набор цифр. Увидеть его можно только посредством какого-либо устройства вывода. По этой причине внешний вид изображения размер, качество, цветопередача и т. Достоинством растрового способа представления изображений является возможность получения фотореалистичного изображения высокого качества в различном цветовом диапазоне. Недостатком — высокая точность и широкий цветовой диапазон требуют увеличения объема файла для хранения изображения и оперативной памяти для его обработки. Растровая графика описывает изображения с использованием цветных точек, называемых пикселами, расположенных на сетке. Например, изображение древесного листа описывается конкретным расположением и цветом каждой точки сетки, что создает изображение примерно так же, как в мозаике фотографии, отсканированные рисунки и т. При редактировании растровой графики редактируются пикселы, а не линии. Растровая графика зависит от разрешения, поскольку информация, описывающая изображение, прикреплена к сетке определенного размера. При редактировании растровой графики, качество ее представления может измениться. Вывод растровой графики на устройства с более низким разрешением, чем разрешение самого изображения, понизит его качество. Применение растровой графики позволяет добиться качественного изображения, фотографического качества. Но за все нужно, платить в данном случае - объемами файлов и трудоемкостью редактирования изображения, приходиться каждую точку подправлять вручную. Даже если Вы при редактировании используете инструменты типа линии или примитивов овалов, квадратов , то результат представляет собой изменение затронутых данными инструментами пикселей. При изменении размеров, качество изображения ухудшается: При печати растрового изображения или при просмотре его на средствах имеющих недостаточный разрешающую способность значительно ухудшает восприятие образа. Растровые изображения характеризуются количеством составляющих их точек. В силу частого отождествления точек и пикселей размеры изображений измеряют в пикселях. Это представляется удобным, если изображение предназначено только для демонстрации на мониторе Web-страницы и прочие документы для электронного распространения. Удобство обусловлено стандартизированным количеством пикселей, которое могут отображать мониторы. Чтобы представить себе, сколько места на экране монитора займет изображение известного размера, надо знать, сколько пикселей монитора приходится на единицу длины. Такая величина имеет собственное название - разрешение экранного изображения, и измеряется в пикселях на дюйм pixel per inch, ppi. В каждом конкретном случае она зависит от физического размера экрана и установленного размера растровой сетки, т. Число возможных сочетаний этих параметров весьма велико например, разрешение мониторов могут быть установлены в диапазоне от 72 ppi до 96 ppi. При более высоком разрешении элементы интерфейса программ текст в меню и диалоговых окнах, панели инструментов и т. Низкое разрешение, наоборот, оставляет на экране слишком мало места для самого редактируемого изображения или текста. Разрешение изображения — определяет насколько точно будут воспроизведены детали изображения. Чем выше разрешение, тем выше качество печати и тем больше объем данных изображения. Это, в свою очередь, означает необходимость большего объема памяти для записи изображения. Разрешение выражается в dpi Dots Per Inch — Точках на дюйм. Например, разрешение dpi означает, что в каждом дюйме присутствует точек. Размер одной точки составляет примерно 63,5 микрон 0, мм. Разрешение дисплея — это степень резкости изображения, показываемого на дисплее. Однако термин разрешение дисплея используется и для определения разрешающей способности самого дисплея. Разрешение дисплея заметно ниже разрешения принтера или сканера. Следовательно, если нужно создать изображение для основной страницы Web, то требования к разрешению будут намного ниже, чем возможности сканера или принтера например, вполне достаточно будет разрешения 72 - dpi. Разрешение при печати — работа цветного струйного принтера основана на распылении чернильных частиц на бумажный или какой-либо другой носитель, используемый для печати. Разрешение при печати выражается числом чернильных частиц, которые можно распылить на один дюйм примерно 2,54 мм. Например, разрешение dpi означает, что на длине одного дюйма бумаги будет распылено чернильных частиц. Чем больше число чернильных частиц, тем точнее воспроизводятся детали изображения. Однако при этом соответственно возрастает и время печати. Выражать размер изображения в пикселях удобно при подготовке графики для электронного распространения. Если же цель состоит в получении печатной копии, то лучше оперировать метрическими единицами. Зная разрешение монитора, легко вычислить размер изображения на экране. Приведенный расчет выполнен исходя из разрешения монитора 96 ppi. Для разрешения 72 ppi размер того же изображения окажется иным: Производить подобные вычисления каждый раз, как только потребуется оценить размер изображения на конкретном устройстве вывода, не удобно. Поэтому размер растровых изображений чаще всего характеризуют так же, как и растровые устройства: Вместо размера в пикселях при создании или сканировании изображения при этом указывают разрешение и геометрический размер в сантиметрах или дюймах. Цифровое изображение от этого не приобретает физических размеров. Такой способ эквивалентен предположению: При создании или сканировании изображений всегда будут известны хотя бы приблизительно требуемый геометрический размер изображения и его разрешение. Разрешение определяется предполагаемым устройством вывода. Задавая эти параметры еще при создании или сканировании изображений, пользователь не только избавляет себя от расчетов. Данные о геометрических размерах изображений используются при печати из специальных программ, работающих с компьютерной графикой и при размещении изображений в издательских системах и программах иллюстрирования. Соответствие при этом разрешения изображений разрешению устройства вывода будет на вашей совести. В файлах изображений хранится информация о геометрическом размере и разрешении изображений. Эти величины используются при помещении изображения в программу верстки или подготовки иллюстраций. При изменении размеров, качество растрового изображения ухудшается: Для векторной графики object-oriented graphics характерно разбиение изображения на ряд графических примитивов — точка, прямая, ломаная, дуга, полигон. Таким образом, появляется возможность хранить не все точки изображения, а координаты узлов примитивов и их свойства цвет, связь с другими узлами и т. При использовании векторного представления изображение представляет собой базу данных описаний примитивов. То есть, в составе изображения могут быть отрезки, окружности, овалы, точки, кривые Безье и так далее. А изображение будет представлять из себя массив описаний, например:. Векторное изображение может быть легко масштабировано без потери деталей, так как это требует пересчета сравнительно небольшого числа координат узлов. Векторная графика описывает изображения с использованием прямых и изогнутых линий, называемых векторами, а также параметров, описывающих цвета и расположение. Например, изображение древесного листа описывается точками, через которые проходит линия, создавая тем самым контур листа. Цвет листа задается цветом контура и области внутри этого контура. Если в растровой графике базовым элементом изображения является точка, то в векторной графике — линия. Линия описывается математически как единый объект, и потому объем данных для отображения объекта средствами векторной графики существенно меньше, чем в растровой графике. Линия — элементарный объект векторной графики. Как и любой объект, линия обладает свойствами: Окончание линии то есть ее форма в конечном узле также выступает одним из свойств с изменяемыми параметрами. Замкнутые линии приобретают свойство заполнения. Охватываемое ими пространство может быть заполнено другими объектами текстуры, карты или выбранным цветом. Заполнение бывает растровым и векторным. В последнем случае иногда используют элементы фрактальной графики, являющейся частным случаем векторной. Основные языки программирования при выводе графических примитивов также используют понятия векторной графики. Простейшая незамкнутая линия ограничена двумя точками, именуемыми узлами. Узлы имеют ряд свойств, параметры которых влияют на форму конца линии и характер сопряжения с другими объектами. Все прочие объекты векторной графики, в том числе самые сложные, составляют из линий Рис. Для построения объектов векторной графики используют инструменты рисования линий и управления заполнением контуров. Простые объекты могут взаимодействовать различными способами, в том числе с применением булевых операций объединения, вычитания и пересечения. Эффекты, применимые к объектам векторной графики, воздействуют на свойства линии, заполнения и узлов. В программах векторной графики все эффекты являются модификаторами. Модификатор описывает математическими методами параметры изменения свойств исходного объекта, не затрагивая его основ. Рассмотрим подробнее способы представления различных объектов в векторной графике. Этот объект на плоскости представляется двумя числами х, у , указывающими его положение относительно начала координат Рис. Указав параметры к и b, всегда можно отобразить бесконечную прямую линию в известной системе координат, то есть для задания прямой достаточно двух параметров Рис. Он отличается тем, что требует для описания еще двух параметров — например, координат х1 и х2 начала и конца отрезка Рис. К этому классу кривых относятся параболы, гиперболы, эллипсы, окружности, то есть все линии, уравнения которых содержат степени не выше второй Рис. Кривая второго порядка не имеет точек перегиба. Прямые линии являются всего лишь частным случаем кривых второго порядка. Формула кривой второго порядка в общем виде может выглядеть, например, так:. Для описания бесконечной кривой второго порядка достаточно пяти параметров. Если требуется построить отрезок кривой, понадобятся еще два параметра Рис. Отличие этих кривых от кривых второго порядка состоит в возможном наличии точки перегиба. Именно эта особенность позволяет сделать кривые третьего порядка основой отображения природных объектов в векторной графике. Линии изгиба человеческого тела, контуры пересеченной местности, очертания растений весьма близки к кривым третьего порядка. Все кривые второго порядка, в том числе прямые линии, являются частными случаями кривых третьего порядка. В общем случае уравнение кривой третьего порядка можно записать так:. Таким образом, кривая третьего порядка описывается девятью параметрами Рис. Описание ее отрезка потребует на два параметра больше Рис. Несмотря на кажущуюся сложность описания кривой третьего порядка, ее код занимает в файле несравнимо меньше места, чем код аналогичной кривой, но созданной из точек растровой. Для растровой линии дают описание положения и цвета каждой точки. Кривая Безье является гладкой кривой, то есть она не имеет разрывов и непрерывно заполняет отрезок между начальной и конечной точками. Благодаря простоте задания и возможности удобно манипулировать формой, кривые Безье нашли широкое применение в компьютерной графике для моделирования гладких линий. Поскольку кривая полностью определяется своей выпуклой оболочкой из опорных точек, последние могут быть отображены и использоваться для наглядного управления формой линии. Кроме того, аффинные преобразования кривой перенос, масштабирование, вращение также легко могут быть осуществлены путём применения трансформаций к опорным точкам. Наличие выпуклой оболочки значительно облегчает задачу о точках пересечения кривых Безье: Наибольшее значение имеют кубические кривые Безье. Кривые высших степеней при обработке требуют большего объёма вычислений и для практических целей используются реже. Для построения сложных по форме линий отдельные кривые Безье могут быть последовательно соединены друг с другом в сплайн Безье. Для того, чтобы обеспечить гладкость линии в месте соединения двух кривых, смежные опорные точки обеих кривых должны лежать на одной линии. Две из них являются опорными узлами кривой: Точки Р 1 х 1 ,у 1 и Р 2 х 2 ,у 2 , определяющие положение касательных относительно отрезка, называют управляющими Рис. Метод построения кривой Безье основан на использовании пары касательных управляющих линий , проведенных к сегменту кривой в его окончаниях. На форму кривой влияют угол наклона касательной и длина ее отрезка. Параметрическое уравнение Безье описывает положение точек и, тем самым, форму кривой. Уравнение решают относительно параметра t, принимающего значения от 0 в начальной точке до 1 в конечной точке. При построении сегмента кривой Безье на плоскости рассчитывают координаты х и у для четырех точек, из них двух управляющих:. Значение t определяет степень влияния точек на форму кривой Рис. Из приведенных уравнений вытекает, что кривая может проходить лишь через начальную и конечную опорные точки сегмента Р 0 , Р 3. Тем самым достигаются простота описания и стабильность кривой Безье. Кривые Безье обладают рядом свойств, определяющих возможность их использования в векторной графике. С геометрической точки зрения, производной кривой Безье будет другая кривая Безье, векторы управляющих точек которой определяются вычислением разностей векторов управляющих точек исходной кривой. Основные свойства кривой Безье:. При редактировании элементов векторной графики изменяют параметры прямых и изогнутых линий, описывающих форму этих элементов. Можно переносить элементы, менять их размер, форму и цвет, но это не отразится на качестве их визуального представления. Векторная графика не зависит от разрешения, то есть может быть показана в разнообразных выходных устройствах с различным разрешением без потери качества. Достоинством векторной компьютерной графики является:. Недостатком векторной компьютерной графики является:. Фрактальная графика, основные понятия. В математике существует понятие фрактала — геометрического образования, представляющего собой систему самоподобных фигур, расположенных относительно друг друга закономерным образом. Как форма и размер отдельных элементов, так и их взаимное расположение может быть описано математической формулой. Фрактальная графика, как и векторная, основана на математических вычислениях. Базовым элементом фрактальной графики является сама математическая формула, то есть никаких объектов в памяти компьютера не хранится и изображение строится исключительно по уравнениям. Таким образом, строят как простейшие регулярные структуры, так и сложные иллюстрации, имитирующие природные ландшафты и трехмерные объекты. Фрактальная графика, как и векторная - вычисляемая, но отличается от неё тем, что никакие объекты в памяти компьютера не хранятся. Изображение строится по уравнению или по системе уравнений , поэтому ничего, кроме формулы, хранить не надо. Изменив коэффициенты в уравнении, можно получить совершенно другую картину. Способность фрактальной графики моделировать образы живой природы вычислительным путем часто используют для автоматической генерации необычных иллюстраций. Фрактал — это объект, обладающий бесконечной сложностью, позволяющий рассмотреть столько же своих деталей вблизи, как и издалека. Земля — классический пример фрактального объекта. Из космоса она выглядит как шаp. Если приближаться к ней, то будут видны океаны, континенты, побережья и цепи гор. Если рассматривать горы ближе — станут видны еще более мелкие детали: И даже еще более сильное увеличение покажет крошечные частички грунта, каждая из которых сама является фрактальным объектом. Многие объекты в природе обладают фрактальными свойствами, например побережья, облака, кроны деревьев, кровеносная система и система альвеол человека или животных. Последнее время фракталы стали популярны у трейдеров для анализа курса фондовых бирж, валютных и торговых рынков. Фракталы, особенно на плоскости, популярны благодаря сочетанию красоты с простотой построения при помощи компьютера Рис. В более широком смысле под фракталами понимают множества точек в евклидовом пространстве, имеющие дробную метрическую размерность, либо метрическую размерность, строго большую топологической. Оно может употребляться, когда рассматриваемая фигура обладает какими-либо из перечисленных ниже свойств:. Основоположником идей о фракталах считается Франко-Американский математик Профессор Бенуа Б. Целью фрактальной геометрии был анализ сломанных, морщинистых и нечетких форм. Мандельброт использовал слово фрактал, потому, что это предполагало осколочность и фракционность этих форм. Мандельброт и другие ученые, такие как Клиффорд А. Pickover , Джеймс Глейк James Gleick или Г. Peitgen пытаются расширить область фрактальной геометрии так, чтобы она могла быть применена практически ко всему, что есть в мире, от предсказания цен на рынке ценных бумаг до совершения новых открытий в теоретической физике. Первыми открытыми фракталами были детерминированные фракталы. Их отличительной чертой является свойство самоподобия, обусловленное особенностями метода их генерации. Некоторые предпочитают называть эти фракталы классическими, геометрическими фракталами или линейными фракталами. Эти фракталы обычно формируются начиная с инициатора — фигуры, к которой применяется определенный основной рисунок. Во всех детерминированных фракталах, самоподобие проявляется на всех уровнях. Это значит, что независимо от того насколько вы приближаете фрактал, вы увидите все тот же узор. Для сложных фракталов, которые будут рассмотрены позже, это не так. Детерминистские фракталы образуются в процессе, называемом итерацией, которая применяет основной рисунок к инициатору, после чего применяет его к результату и так далее. Большинство людей итерационно повторяют детерминированные фракталы раз, чтобы получить четкую красивую картинку. Эти фракталы линейны, так как при каждой итерации что-то убирается, либо что-то прибавляется в форме прямых линий. Треугольники, сформированные соединением средних точек большего треугольника вырезаны из главного треугольника, образовывая треугольник, с большим количеством дырочек. В этом случае инициатор — большой треугольник а шаблон — операция вырезания треугольников, подобных большему. Так же можно получить и трехмерную версию треугольника, используя обыкновенный тетраэдр и вырезая маленькие тетраэдры. Для получения этого фрактала берут квадрат, делят его на девять квадратов, а средний вырезают. То же самое делают и с остальными, меньшими квадратами. В итоге образуется плоская фрактальная сетка, не имеющая площади, но с бесконечными связями. В своей пространственной форме, губка Серпинского преобразуется в систему сквозных форм, в которой каждый сквозной элемент постоянно заменяется себе подобным. Эта структура очень похожа на разрез костной ткани. Такие повторяющиеся структуры могут стать элементом строительных конструкций. Их статика и динамика, считает Мандельброт, заслуживает пристального изучения Рис. В этом фрактале, инициатор и генератор одинаковы. При каждой итерации, добавляется уменьшенная копия инициатора к каждому углу генератора и так далее. Если при создании этого фрактала произвести бесконечное число итераций, он бы занял всю плоскость, не оставив ни одной дырочки. Кривая Коха один из самых типичных детерминированных фракталов. Она была изобретена в девятнадцатом веке немецким математиком по имени Хельге фон Кох, который, изучая работы Георга Контора и Карла Вейерштрассе, натолкнулся на описания некоторых странных кривых с необычным поведением. Инициатор — прямая линия. Генератор — равносторонний треугольник, стороны которого равны трети длины большего отрезка. Эти треугольники добавляются к середине каждого сегмента снова и снова. В своем исследовании, Мандельброт много экспериментировал с кривыми Коха, и получил фигуры такие как Острова Коха, Кресты Коха, Снежинки Коха и даже трехмерные представления кривой Коха, используя тетраэдр и прибавляя меньшие по размерам тетраэдры к каждой его грани. Крест Коха — это один из вариантов кривой Коха, изобретенный Мандельбротом. Вместо отрезка прямой, он использовал в качестве инициатора квадрат или прямоугольник. Так как в этом фрактале использован та же самая идея что и в оригинальной кривой Коха, его фрактальная размерность такая же: Множество Мандельброта основано на нелинейных уравнениях и является комплексным фракталом. Это тоже вариант кривой Коха несмотря на то, что этот объект не похож на нее. Инициатор и генератор так же отличны от использованных для создания фракталов, основанных на принципе кривой Коха, но идея остается той же. Вместо того, чтобы присоединять равносторонние треугольники к отрезку кривой, квадраты присоединяются к квадрату. И инициатор, и генератор довольно сложны и составлены из ряда прямых углов и сегментов различной длины. У самого инициатора 8 частей. Этот фрактал еще иногда называют H-деревом. И инициатор и генератор имеют вид буквы H. На приведенном здесь примере сама H не закрашена. Вместо этого заполнены области вне фрактала, что облегчает восприятие рисунка и шаблона. Фрактальная размерность этого конкретно фрактала весьма интересна. Так как толщина H в процессе итераций уменьшается, размерность кончиков буквы H точно 2. Фрактал выглядит как связка пятиугольников, сжатых вместе. Фактически он образован при использовании пятиугольника в качестве инициатора и равнобедренных треугольников, отношение большей стороны к меньшей в которых в точности равно так называемой золотой пропорции 1. Эти треугольники вырезаются из середины каждого пятиугольника, в результате чего получается фигура, похожая на 5 маленьких пятиугольников, приклеенных к одному большому Рис. Большая часть встречающихся сегодня фракталов не являются детерминированными. Они не линейны и не собранны из повторяющихся геометрических форм. Такие фракталы называются сложными Рис. Детерминистские фракталы являются линейными, тогда как сложные фракталы таковыми не являются. Будучи нелинейными, эти фракталы генерируются тем, что Мандельброт назвал нелинейными алгебраическими уравнениями. Решение этих математических уравнений вовлекает комплексные и мнимые числа. Когда уравнение интерпретируется графически на комплексной плоскости, результатом оказывается странная фигура, в которой прямые линии переходят в кривые, появляются, хотя и не без деформаций, эффекты самоподобия на различных масштабных уровнях. При этом вся картина в целом является непредсказуемой и очень хаотичной. Теория хаоса - это учение о сложных нелинейных динамических системах. Под термином нелинейные понимается рекурсия и алгоритмы из высшей математики, и, наконец, динамические — означает непостоянные и непериодические. Теория хаоса является средством взглянуть на события, происходящие в мире отлично от более традиционного четко детерминистического взгляда, который доминировал в науке со времен Ньютона. Вместо традиционных X-Y графиков, ученые теперь могут интерпретировать фазово-пространственные диаграммы которые — вместо того, чтобы описывать точное положение какой-либо переменной в определенный момент времени — представляют общее поведение системы. Техники теории хаоса использовались для моделирования биологических систем, которые, бесспорно, являются одними из наиболее хаотических систем из всех, которые можно себе представить. Системы динамических равенств использовались для моделирования всего — от роста популяций и эпидемий до аритмических сердцебиений. Броуновское движение — это, например, случайное и хаотическое движение частичек пыли, взвешенных в воде. Этот тип движения, возможно, является аспектом фрактальной геометрии, имеющий с наибольшее практическое использование. Случайное Броуновское движение производит частотную диаграмму Рис. Хорошим примером являются цены на шерсть, которые Мандельброт предсказал при помощи Броуновского движения. Во многих фантастических фильмах техника броуновского движения была использована для создания инопланетных ландшафтов таких, как холмы и топологические картины высокогорных плато. Мандельброт использовал Броуновские линии для создания фрактальных линий побережья и карт островов которые на самом деле были просто в случайном порядке изображенные точки с высоты птичьего полета Рис. Трехмерная 3D графика, основные понятия. Трёхмерная графика 3D, 3 Dimensions, русск. Больше всего применяется для создания изображений в архитектурной визуализации, кинематографе, телевидении, компьютерных играх, печатной продукции, а также в науке. Трёхмерное изображение отличается от плоского построением геометрической проекции трёхмерной модели сцены на экране компьютера с помощью специализированных программ. При этом модель может как соответствовать объектам из реального мира автомобили, здания, ураган, астероид , так и быть полностью абстрактной проекция четырёхмерного фрактала. Для получения трёхмерного изображения требуются следующие шаги:. Сцена виртуальное пространство моделирования включает в себя несколько категорий объектов:. Задача трёхмерного моделирования — описать эти объекты и разместить их в сцене с помощью геометрических преобразований в соответствии с требованиями к будущему изображению. Здесь модель — это описание любых объектов или явлений на строго определённом языке или в виде структуры данных. Такое описание может содержать геометрические данные, положение точки наблюдателя, информацию об освещении, степени наличия какого-то вещества, напряжённость физического поля и пр. Примером визуализации могут служить радарные космические снимки, представляющие в виде изображения данные, полученные посредством радиолокационного сканирования поверхности космического тела, в диапазоне электро-магнитных волн, невидимых человеческим глазом. Часто в компьютерной графике художественной и технической под рендерингом понимают создание плоского изображения картинки по разработанной 3D-сцене. Изображение — это цифровое растровое изображение. Синонимом в данном контексте является визуализация. Визуализация — один из наиболее важных разделов в компьютерной графике, и на практике он тесным образом связан с остальными. Обычно, программные пакеты трехмерного моделирования и анимации включают в себя также и функцию рендеринга. Существуют отдельные программные продукты, выполняющие рендеринг. В зависимости от цели, различают пре-рендеринг , как достаточно медленный процесс визуализации, применяющийся в основном при создании видео, и рендеринг в реальном режиме, применяемый в компьютерных играх. Рендеринг часто использует 3D-ускорители. На этапе рендеринга математическая векторная пространственная модель превращается в плоскую картинку. Если требуется создать фильм, то рендерится последовательность таких картинок, по одной для каждого кадра. Как структура данных, изображение на экране представлено матрицей точек, где каждая точка определена по крайней мере тремя числами: Таким образом, рендеринг преобразует трёхмерную векторную структуру данных в плоскую матрицу пикселов. Этот шаг часто требует очень сложных вычислений, особенно если требуется создать иллюзию реальности. Самый простой вид рендеринга — это построить контуры моделей на экране компьютера с помощью проекции. Обычно этого недостаточно и нужно создать иллюзию материалов, из которых изготовлены объекты, а также рассчитать искажения этих объектов за счёт прозрачных сред например, жидкости в стакане. Трассирование каждого луча света в сцене непрактично и занимает неприемлемо длительные периоды времени. Даже трассирование малого количества лучей, достаточного, чтобы получить изображение, занимает чрезмерное количество времени, если не применяется аппроксимация семплирование. Было разработано несколько методов, более эффективных, чем моделирование всех лучей света, освещающих сцену. Существует несколько технологий рендеринга, часто комбинируемых вместе. Существующее программное обеспечение может использовать несколько алгоритмов для получения конечного изображения Рис. Трёхмерная графика обычно имеет дело с виртуальным, воображаемым трёхмерным пространством, которое отображается на плоской, двухмерной поверхности дисплея или листа бумаги. В настоящее время известно несколько способов отображения трехмерной информации в объемном виде, хотя большинство из них представляет объемные характеристики весьма условно, поскольку работают со стереоизображением. Из этой области можно отметить стереоочки, виртуальные шлемы, 3D? Несколько производителей продемонстрировали готовые к серийному производству трехмерные дисплеи. Но чтобы насладиться объемной картинкой, зрителю необходимо расположиться строго по центру. Шаг вправо, шаг влево, равно как и неосторожный поворот головы, карается превращением трехмерности в несимпатичное зазубренное изображение. Решение этой проблемы уже созрело в научных лабораториях. Германский Институт Фраунгофера демонстрировал 3D? Таким образом, становится возможным не только видеть объемную картинку, но и взаимодействовать с изображенными на ней предметами. Развивающиеся с х годов технологии быстрого прототипирования ликвидируют этот пробел. Следует заметить, что в технологиях быстрого прототипирования используется представление математической модели объекта в виде твердого тела так называемое твердотельное моделирование. В настоящее время появляются телевизоры, позволяющие видеть глубокое объемное изображение, не используя стереоскопические или иные очки. В будущем такие телевизоры смогут появиться в домах и будут предназначены для трансляции телеканалов, а сейчас редкие экземпляры используются в основном для рекламы. Основные понятия компьютерной анимации и интерактивной машинной графики. Компьютерная анимация — вид анимации, создаваемый при помощи компьютера. На сегодня получила широкое применение как в области развлечений, так и в производственной, научной и деловой сферах. Являясь производной от компьютерной графики, анимация наследует те же способы создания изображений:. По принципу анимирования можно выделить несколько видов компьютерной анимации. Расстановка ключевых кадров производится аниматором. Промежуточные же кадры генерирует специальная компьютерная программа. Этот способ наиболее близок к традиционной рисованной анимации, только роль фазовщика берет на себя компьютер, а не человек. Данные анимации записываются специальным оборудованием с реально двигающихся объектов и переносятся на их имитацию в компьютере. Актеры в специальных костюмах с датчиками, совершают перемещения по студии, а их движение записывается камерами и анализируется специальным программным обеспечением. Итоговые данные о перемещении суставов и конечностей актеров применяют к трехмерным скелетам виртуальных персонажей, чем добиваются высокого уровня достоверности их движения. Такой же метод используют для переноса мимики живого актера на его трехмерный аналог в компьютере. Такая анимация полностью или частично рассчитывается компьютером. Сюда можно включить следующие её виды:. Программное обеспечение, позволяющее задействовать цифровой фотоаппарат для съемки анимации, применяется также часто, как и, ставшие привычными, 3D или 2D пакеты. Любая программа такого типа обеспечивает управление цифровым фотоаппаратом через компьютер и работу с полученными кадрами. История развития компьютерной анимации. Анимированные рисованные фильмы появились до появления кино: При вращении барабана картинки поочередно через маленькое окошко демонстрировались зрителю, и передним разыгрывалась короткая сценка Рис. Позже появилось отдельная ветвь кинематографии — рисованные мультипликационные фильмы. Над созданием таких фильмов трудилась целая бригада: При этом каждая картинка рисовалась заново. При этом могла быть достигнута не только полная реалистичность самих персонажей, но и абсолютная естественность их движений. Самыми знаменитыми представителями этой школы являются студия Диснея и мастерская российского мультипликатора Норнштейн Рис. Однако такой способ мультипликации очень трудоемкий: Эти приемы получили еще более широкое применение в компьютерной анимации. Разумеется, активное использование таких приёмов заметно, а чрезмерное — бросается в глаза, поэтому говорить об отсутствии потери в качестве, строго говоря, нельзя. Однако многие считают, что созданные таким образом произведения сохраняют достаточно выразительный визуальный ряд. Редуцированная анимация активно используется при создании аниме, а также — в различных своих видах — в американской мультипликационной продукции. При этом большая ее часть создается на основе компьютерной графики. В отличие от анимации других стран, предназначаемой в основном для просмотра детьми, бо? Аниме часто но не всегда отличается характерной манерой отрисовки персонажей и фонов. Издаётся в форме телевизионных сериалов, а также фильмов, распространяемых на видеоносителях или предназначенных для кинопоказа. Сюжеты могут описывать множество персонажей, отличаться разнообразием мест и эпох, жанров и стилей Рис. Параллельно с рисованной мультипликацией развивались и кукольные мультфильмы. С развитием 3-мерной компьютерной графики вместо кукол стали использовать 3d-персонажи Рис. Способы подготовки компьютерной анимации. Есть несколько разных путей подготовки компьютерной анимации. Один из них - использование специального программного обеспечения трехмерной или двухмерной анимации. Подобные программы позволяют создавать модели объектов, задавать движение, освещение, материальные свойства объектов и выполнять рендеринг. Наиболее распространенным способом создания анимации является метод ключевых или опорных кадров keyframing. При использовании этого метода объекты вручную устанавливаются в требуемые положения, соответствующие моментам времени ключевых кадров, а система компьютерной анимации автоматически строит все недостающие кадры между опорными, изображая объекты на промежуточных стадиях их движения. Для моделирования движений, или эффектов, которые трудно воспроизвести с помощью ключевых кадров, используется процедурная анимация. Процедурные контроллеры анимации рассчитывают текущие значения параметров анимации, основываясь на начальных значениях, заданных пользователем, и на математических выражениях, описывающих изменение параметров во времени. Этот метод позволяет выполнять качественные анимации. Другой путь для создания компьютерной анимации - это использование стандартных средств компьютерной графики графических редакторов для рисования одиночных кадров и компоновки их в необходимой последовательности. Одиночные кадры могут быть позднее сохранены в необходимом компьютерном формате или выведены на видео. Еще один метод создания компьютерной анимации — это использование переходов и других специальных эффектов, таких как морфинг для внесения изменений в существующие графические изображения и видео. Растровая анимация - это наиболее простой и старый способ компьютерной анимации. Растровая анимация является набором растровых картинок. В простейшем случае на каждый кадр анимации приходится одна картинка. Естественно, это означает пропорциональное увеличение размеров файла в зависимости от длительности анимации. То есть, если одна картинка имеет объем килобайт, то четырехсекундная последовательность при 25 кадрах в секунду телевизионный стандарт PAL будет занимать уже 50 мегабайт. С самого начала появления компьютерной анимации пытались как-то уменьшать размеры файла путем применения различных методов компрессии, экономии на паузах и другими подобными хитростями. Но все же характерной особенностью растровой анимации является ее большой объем. Размер картинки на экране также пропорционально связан с размерами файла. И для экономии можно уменьшать линейные размеры кадра. Однако даже крохотные анимационные фильмы для сети с размерами кадра на 90 точек изображения, при jpeg компрессии с потерями, вытягивают на целые мегабайты. Это не существенно для современных компьютеров с их большими дисками на несколько десятков гигабайт, но это очень существенно для каналов связи Интернета. Растровая анимация стала раньше всего использоваться профессиональными аниматорами. Но поначалу это было лишь вспомогательное использование. Качество ее было недостаточно для большого экрана. Выглядело это примерно так. Делались обычным способом наброски и кальки. Потом это оцифровывалось с помощью телекамеры или сканера сканеры появились чуть позднее. Сборка такой черновой анимации часто производилась на компьютере типа Amiga, весьма эффективном и дешевом, а потому доступном для студий любого уровня. Этот компьютер стал своеобразным этапом в развитии компьютерной графики для телевидения вообще. Уже первые его модели, у которых иногда даже не было винчестера, позволяли весьма бойко крутить простую анимацию на полном экране и имели встроенный выход телевизионного сигнала в одном из мировых стандартов PAL или NTSC без преобразования видеосигнала. Видеоподсистема Amiga работала на частотах этих стандартов, что обеспечивало удивительное по тем временам быстродействие. Именно это и использовалось для просмотра анимации в контуре. У профессиональных аниматоров предварительный просмотр анимации долгое время был проблемой. Снимать промежуточные результаты кинокамерой было делом долгим и дорогим. Переделывать мультипликат на последних этапах еще дороже. Предварительный просмотр на компьютере существенно упрощал решение этой проблемы. Со временем появлялось все больше программ, которые позволяли удобно работать с растровой анимацией, применять различные эффекты, комбинировать рисованную анимацию с реальным видео. На сегодня существует несколько классов подобного программного обеспечения. Пакеты начального уровня мало отличаются от игрушек и обычно не используются профессионалами. В них часто реализована некая интересная идея, которая при этом недостаточно хорошо проработана. Набор средств рисования и редактирования бывает довольно ограничен. Работать в таких программах может почти любой. Но редко результаты этой работы используются для серьезных целей. Часто эти программы написаны одним-двумя программистами. Пакеты среднего уровня могут использоваться для создания уже вполне профессиональной анимации для телевидения, рекламы, презентаций, небольших авторских работ. Набор средств подобных пакетов может быть весьма разнообразен. Они содержат достаточные средства для импорта и экспорта анимации. Их отличительной особенностью является направленность на одиночного пользователя. То есть один человек может, в принципе, создать законченную работу с помощью такой программы. Однако эти программы позволяют организовывать и работу в команде на уровне обмена файлами и разделения общей работы на отдельные фрагменты. Пакеты профессионального уровня стоят на порядок дороже пакетов описанных выше и предназначены для коллективной работы. Они могут содержать несколько вполне автономных модулей, каждый для своих задач контуровка, заливка, монтаж. Часто обладают открытой архитектурой и богатыми возможностями по импорту и экспорту. Это пакеты для студий анимации, и они используются при создании полнометражных анимационных фильмов. Обычно они допускают использование различных типов графики при создании фильма, но конечный результат получается только в растровом формате. Для эффективного использования подобных пакетов иногда требуется конвейер из нескольких десятков художников. Но и результаты, получаемые при использовании подобных средств, поистине великолепны. Это могут быть самые удивительные сочетания живого видео, трехмерной графики и традиционной классической анимации. Причем трехмерные вкрапления зачастую трудно отличить от обычной рисованной анимации. Есть специальные средства для стилизации 3D картинки под рисованный мультипликат. В основе создания векторных изображений всегда лежит сравнительно сложный математический аппарат. Векторная графика подразделяется на трехмерную 3D и двухмерную 2D. Некоторым может показаться, что 2D является всего лишь частным случаем 3D. С точки зрения математики это, возможно, так и есть. Но способы реализации двухмерной и трехмерной векторной графики существенно отличаются. Если провести эксперименты в редакторе Flash, то можно заметить, что описание простого сплайна укладывается с учетом компрессии в байт. При этом линия может менять свою форму в достаточно широких пределах. Она может изменяться от прямой линии до петли, пересекающей саму себя во Flash это будет уже объект из нескольких сплайнов. Реальные линии состоят из нескольких элементарных кривых. Трехмерная графика тоже использует кривые. Но гораздо важнее в 3D графике понятие полигона. Полигон может быть треугольным или четырехугольным, двухсторонним или односторонним. И если трехмерный объект моделируется с помощью сплайнов, то на конечном этапе он, как правило, преобразуется в полигональную модель. Полигональный способ описания трехмерных объектов более универсален и понимается абсолютным большинством 3D редакторов. Но что более важно - этот способ представления позволяет проще обмениваться объектами между различными программами. Любой редактор векторной графики, будь то 2D или 3D, работает с объектами, и этапы создания объекта и его визуализации на экране можно четко разделить. Один и тот же объект может отображаться в различных режимах начиная от простого контурного представления и заканчивая тончайшим просчетом освещения и текстурирования для 3D. В продвинутых системах это позволяет иметь одну копию объекта, которая используется многократно. Это экономит память и иногда даже сокращает время визуализации для двухмерных редакторов. С точки зрения анимации это означает еще более важный факт. Нам вовсе не обязательно описывать объект каждый раз заново для нового кадра. Достаточно давать описание изменения его характеристик во времени. В большинстве случаев это приводит к колоссальной экономии на требуемом для описания объеме данных. Кроме того, это упрощает редактирование движения. Кадры, в которых делается описание изменившихся параметров объекта, называют ключевыми. Промежуточные кадры при этом не несут никакой информации, кроме задания временного промежутка между ключевыми кадрами. Поэтому промежуточные кадры могут добавляться и удаляться совершенно безболезненно в любой момент. При визуализации редактор будет просчитывать изменения объекта, полагаясь на информацию только в ключевых кадрах. Положение в каждом из промежуточных кадров будет рассчитано как экстраполяция между ключевыми кадрами. Если систематизировать основные подходы создания компьютерной анимации, то получится схема, представленная на Рис. Автоматическая анимация движения tweening упрощает работу аниматора интерполяцией промежуточных кадров между двумя ключевыми. Под движением понимается как перемещение объекта, так и ряд других аффинных преобразований Рис. Морфинг применяется как в растровой, так и в 2- и 3-мерной векторной анимации. Одной из технологий морфинга для анимации мимики и артикуляции является захват движения. Этот метод изначально применялся при создании виртуальной реальности. Специальные костюмы с датчиками, расположенными в контрольных точках, фиксировали перемещение датчиков и передавали значения перемещения соответствующим точкам 3d-модели. Для анимации мимики 2-мерных персонажей используются кадры видеозаписи, по которым вычисляются контрольные точки, и по этим точкам осуществляется морфинг Рис. В 3-мерной графике камеры обладают широким спектром средств управления, которые можно анимировать. Среди них команды управления окном проекции, фокусное расстояние объектива, положения плоскостей отсечения и диапазон внешней среды. Анимировать камеру можно также методом ключевых кадров или назначая для нее путь движения. Анимацию камеры применяют и при создании 2d-визуализации обычных фотографий. В этом случае автоматически пересчитываются угол обзора. Редактируются задние планы и текстуры. Для создания естественной анимации сложных сочлененных структур недостаточно нарисовать оболочку - необходимо учитывать связь отдельных частей. Моделирование и анимация персонажа включает в себя несколько этапов: Оболочка так и останется статичной оболочкой, которую нельзя реалистично анимировать. Однако достаточно легко можно заставить персонаж выглядеть естественно с помощью инструмента Bone Кость , позволяющего создать кости, соединяющие различные части тела и образующие скелет. Создание костей и привязка к ним оболочки применяется и в 2 — в 3-мерной графике. Для того, чтобы задать взаимосвязи между различными костями, необходимо настроить иерархию элементов скелета, а чтобы определить степень влияния каждой кости на вершины сетки, необходимо настроить вес костей. Настройка анимации во многом зависит от выбранного метода анимации:. Этот метод мультипликации не следует путать с инверсной кинематикой , применяемой при создании анимируемых моделей в пакетах трехмерной графики. Инверсная кинематика позволяет управлять цепочкой связанных объектов, перемещая только один из объектов-потомков. Захват движения motion capture — способ автоматической анимации, при котором движение опорных точек движущегося реального объекта переносится на аналогичные точки изображения. Процедурная анимация — методы создания фильма, в которых и изображение, и его изменения создаются программным способом. Такую 3d-анимацию можно создать, например, в OpenGL или с помощью языка сценариев во Flash. Следует обратить внимание и на определение такого термина, как мультимедиа. Мультимедиа - это объединение высококачественного изображения на экране компьютера со звуковым сопровождением. Наибольшее распространение системы мультимедиа получили в области обучения, рекламы, развлечений. Таким образом, под компьютерной анимацией понимают получение движущихся изображений на экране дисплее. Художник создает на экране рисунке начального и конечного положения движущихся объектов, все промежуточные состояния рассчитывает и изображает компьютер, выполняя расчеты, опирающиеся на математическое описание данного вида движения. Полученные рисунки, выводимые последовательно на экран с определенной частотой, создают иллюзию движения. Можно определить следующие основные направления применения анимации. Анимационные заставки анимация заставки — подобные продукты можно использовать как анимацию заставку для корпоративных фильмов, можно как анимированную заставку на сайт. Это универсальный продукт, который можно задействовать для любого носителя. Данные вид позволяет добавить ролик реалистичности — трехмерности изображения. Анимация или анимационные вставки — в данном случае анимационные ролики могут быть использованы в качестве web анимации для сайта, для рекламных роликов и корпоративных фильмов в качестве анимации специальных эффектов, для flash презентаций, как анимация презентации и т. В любом случае вставки анимации добавят любому продукты жизненности и эффектности. Презентационный ролик имиджевый ролик — идеален для использования при проведении или участии в любых мероприятия. Презентационный ролик легко адаптируем под плазменные панели, проекционные экраны — фактически любые видео носители. Анимация открытки создание Flash открытки — данный вариант анимации подходит если необходимо создать уникальную корпоративную открытку. Эта открытка будет не только ярким динамичным поздравлением, но и фактически реальным подарком, который получатель с удовольствием сможет продемонстрировать коллегам. Теперь перейдем к рассмотрению понятия интерактивной компьютерной графики. Как уже было сказано в самом начале этого интерактивного учебного пособия, под компьютерной графикой понимают автоматизацию процессов подготовки, преобразования, хранения и воспроизведения графической информации с помощью компьютера. Под графической информацией понимаются модели объектов и их изображения. Интерактивная компьютерная графика - это так же использование компьютеров для подготовки и воспроизведения изображений, но при этом пользователь имеет возможность оперативно вносить изменения в изображение непосредственно в процессе его воспроизведения, то есть предполагается возможность работы с графикой в режиме диалога в реальном масштабе времени. Интерактивная графика представляет собой важный раздел компьютерной графики, когда пользователь может динамически управлять содержимым изображения, его формой, размером и цветом на поверхности дисплея с помощью интерактивных устройств управления. Программы моделирования позволяют довольно естественно представить некую реальность с помощью движущегося изображения и звука в сочетании с интерактивной способностью такой системы. Такие системы в начале своего существования были весьма сложны и дороги, поэтому использовались лишь для военных нужд. Такое применение выгодно и в финансовом плане, если подумать об огромных затратах на один час реального на природе учения материалы, персонал, боеприпасы, горючее и - не надо забывать о возмещении ущерба. Здесь точно также можно проигрывать ситуации происшествия, конъюнктуру , близкие к реальной жизни, находить ошибки и проводить тренировки. Область, в которой возникает взаимодействие человека и компьютера и которая проявляется в создании виртуальной кажущейся реальности - называемая также CYBErSPACE кибернетическое пространство - расширяет и обогащает это новое направление применения мультимедиа. Этот виртуальный трехмерный изображаемый мир динамично реагирует на интерактивное общение с пользователем. Такие виртуальные миры создаются, как правило, на базе компьютера и программ CAD Computer Aided Design - проектирование с помощью компьютера. Используя специальные сооружения и соответствующее оборудование, зритель может передвигаться в таком пространстве. Но эта идея совсем не нова. Уже в конце шестидесятых - начале семидесятых годов в Америке была создана интерактивная система, которая, например, регистрировала присутствие человека в помещении с помощью видеокамеры и датчиков перемещения, затем передавала данные в компьютер, который производил соответствующие эффекты. После серьезных успехов в деле миниатюризации приборостроения были созданы комфортабельные условия для дальнейшего творчества. Специальный шлем, по размерам несколько больший, чем обычный шлем мотоциклиста, был оборудован двумя маленькими мониторами, расположенными прямо против глаз. Если пользователь поворачивает голову, изображение на мониторах также отслеживает смену направления взгляда без заметной задержки. Эти перчатки при помощи датчиков преобразуют движение руки или даже отдельных пальцев в электрические импульсы. Датчики регистрируют положение рук и направление их движения. Кабель из стекловолокна, проложенный между двух слоев ткани внутри перчаток, реагирует, даже если пошевелить пальцем. Комплексное движение передается некой виртуальной руке в компьютере, и там решается вопрос об ответных действиях и реакции. Дальнейшее развитие идея перчаток нашла в разработке полностью укомплектованного датчиками костюма. В его конструкцию заложен тот же принцип преобразования движений тела в электрические сигналы. Главным образом поддержку этим разработкам оказывало американское космическое ведомство NASA, которое хотело с помощью этих конструкций управлять, например, роботами. Таким образом, можно отметить, что в машинной графике существует два направления: При пакетной обработке графической информации система машинной графики обеспечивает выдачу графической информации на экран дисплея без участия пользователя. Эту выдачу обеспечивают графопостроитель, устройство микрофильмирования и другие устройства, которые позволяют получать графические документы. Интерактивная машинная графика позволяет использовать средства вычислительной техники для организации оперативного, в основном диалогового взаимодействия пользователя с компьютером. Графическая система — это система программных и технических средств, автоматизирующая решение графических и геометрических задач. Графические системы делятся на системы общего назначения и специализированные графические системы. В графических системах общего назначения реализуются процедуры обработки графической информации различного типа: Пользователь этих систем — прикладной программист. К таким системам относятся ГРАФОР графическое расширение Фортрана , базовые графические системы например, GKS. Специализированные графические системы предназначены для реализации процессов обработки графической информации о некоторой специальной области. Существуют отличия систем в зависимости от области применения программ: Пользователь специализированных графических систем — непосредственный разработчик устройств, изделий, аппаратуры. Области применения анимации и интерактивной компьютерной графики. Сейчас трудно представить себе области, в которых не применялась бы интерактивная компьютерная графика и анимация. Интерактивная машинная графика становится все более доступным и популярным средством общения человека с компьютером. Знание азов компьютерной графики и умение их использовать на простейшем бытовом уровне становятся неотъемлемыми элементами грамотности и культуры современного человека. Основные направления использования интерактивной графики:. С интерактивной графикой неразрывно связана компьютерная анимация. Сфера ее применения не менее широка. Если обычная визуализация в виде графиков и схем несет информативный характер, то смена образов вызывает поток ассоциаций и усиливает роль образного мышления. Современные пакеты захвата движения позволяют в режиме реального времени передавать мимику и жесты видеоизображениям. Одна из компаний, выпускающая подобную программу, так рекламирует ее использование для создания аватар: Интерфейс между прикладной программой и графической системой — это множество функций, которые в совокупности образуют графическую библиотеку. Модель системы прикладного программирования показана схематически на Рис. С точки зрения прикладного программиста те функции, к которым он обращается через API, должны соответствовать концептуальной модели описания изображения. Интерфейс прикладного программирования англ. Application Programming Interface, API [эй-пи-ай]; по-русски чаще произносят [апи? API определяет функциональность, которую предоставляет программа модуль, библиотека , при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована. Программные компоненты взаимодействуют друг с другом посредством API. При этом обычно компоненты образуют иерархию — высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов. По такому принципу построены протоколы передачи данных по Internet. Стандартный протокол Internet сетевая модель OSI содержит 7 уровней от физического уровня передачи пакетов бит до уровня протоколов приложений, подобных протоколам HTTP и IMAP. Каждый уровень пользуется функциональностью предыдущего уровня передачи данных и, в свою очередь, предоставляет нужную функциональность следующему уровню. Понятие протокола близко по смыслу к понятию API. И то и другое является абстракцией функциональности, только в первом случае речь идёт о передаче данных, а во втором — о построении компьютерных приложений. API библиотеки функций и классов включает в себя описание сигнатур и семантики функций. Сигнатура функции — часть общего объявления функции, позволяющая средствам трансляции идентифицировать функцию среди других. В различных языках программирования существуют разные представления о сигнатуре функции, что также тесно связано с возможностями перегрузки функции в этих языках. Иногда различают сигнатуру вызова и сигнатуру реализации функции. Сигнатура вызова обычно составляется по синтаксической конструкции вызова функции с учётом сигнатуры области видимости данной функции, имени функции, последовательности фактических типов аргументов в вызове и типе результата. В сигнатуре реализации обычно участвуют некоторые элементы из синтаксической конструкции объявления функции: Если функция является методом некоторого класса, то в сигнатуре будет участвовать и имя класса. В языке программирования Java сигнатуру метода составляет его имя и последовательность типов параметров. Тип значения в сигнатуре не участвует. Семантика функции — это описание того, что данная функция делает. Семантика функции включает в себя описание того, что является результатом вычисления функции, как и от чего этот результат зависит. Обычно результат выполнения зависит только от значений аргументов функции, но в некоторых модулях есть понятие состояния. Тогда результат функции может зависеть от этого состояния, и, кроме того, результатом может стать изменение состояния. Логика этих зависимостей и изменений относится к семантике функции. Полным описанием семантики функций является исполняемый код функции или математическое определение функции. Практически все операционные системы Unix, Windows, Mac OS, и т. Главный API операционных систем — это множество системных вызовов. В индустрии программного обеспечения общие стандартные API для стандартной функциональности имеют важную роль, так как они гарантируют, что все программы, использующие общий API, будут работать одинаково хорошо или, по крайне мере, типичным привычным образом. В случае API графических интерфейсов это означает, что программы будут иметь похожий пользовательский интерфейс, что облегчает процесс освоения новых программных продуктов. С другой стороны, отличия в API различных операционных систем существенно затрудняют перенос приложений между платформами. Существуют различные методы обхода этой сложности:. Также необходимо отметить, что в распоряжении программиста часто находится несколько различных API, позволяющих добиться одного и того же результата. При этом каждый API обычно реализован с использованием API программных компонент более низкого уровня абстракции. Что произойдёт, когда браузер откроет этот документ? Программа-браузер передаст имя файла или уже открытый дескриптор файла библиотеке, обрабатывающей HTML-документы. Та, в свою очередь, при помощи API операционной системы прочитает этот файл и разберётся в его устройстве. При этом практически на каждом из уровней реально существует несколько возможных альтернативных API. Например, можно написать исходный документ не на HTML, а на LaTeX, для отображения можно использовать любой браузер. Различные браузеры используют различные HTML-библиотеки, и, кроме того, всё это может быть собрано с использованием различных библиотек примитивов и на различных операционных системах. Таким образом, основными сложностями существующих многоуровневых систем API, являются:. К API операционных систем относятся:. К API графических интерфейсов относятся:. К API звуковых интерфейсов относятся:. К API аутентификационных систем относятся:. Контрольные вопросы по материалу Главы В процессе формирования изображения есть два ключевых элемента — это объект и наблюдатель. Объект существует в реальном мире в пространстве независимо от процесса создания изображения и от наблюдателя. В компьютерной графике объект может быть не реальным, а воображаемым, то есть созданным с помощью компьютерной программы. Для того, чтобы такой воображаемый объект сформировать, необходимо задать координаты его положения в пространстве. В данном случае применяются специальные геометрические примитивы, такие как: При этом отрезок прямой будет характеризоваться двумя точками вершинами , многоугольник — упорядоченным набором вершин, сфера — двумя вершинами, одна из которых соответствует центру, а другая — любой точке на поверхности сферы. Система отображения обладает средствами формирования изображений наблюдаемых объектов. Если рассматривать разных наблюдателей за одним и тем же объектом, то важно отметить, что наблюдатели, рассматривая объект с разных точек, могут получать совершенно различающиеся изображения того же самого наблюдаемого объекта см. Например, на автомобиль можно смотреть из окна квартиры, находящейся на первом этаже и из окна квартиры, находящейся на шестом этаже. Угол зрения на автомобиль будет разным. Один наблюдатель может воспринимать автомобиль ближе по расстоянию, другой — дальше. Один увидит более яркий цвет автомобиля, другой — более темный например, потому, что второй наблюдатель находится на более высоком этаже и видит, что на автомобиле есть тень от листвы деревьев. В процессе восприятия объекта наблюдателем важную роль играет источник света. Ведь от того, насколько ярко освещен объект, будет зависеть как этот объект воспримет наблюдатель , например, как объект погруженный во тьму или как ярко сияющий. Источники света могут быть естественными лучи солнца и искусственными лучи электрической лампы. Более того, роль в восприятии объекта наблюдателем играет и время суток. Например, днем может не светить солнце и потребуется включить электрическое освещение. Объект будет восприниматься несколько иначе, если на него посмотреть в темное время суток, с тем же самым освещением электрической лампы. Кроме того, говоря об источнике света необходимо учитывать его интенсивность - тускло светит или ярко Рис. Обратите свое внимание, что в зависимости от личных особенностей восприятия наблюдателями объектов то, что изображено на рисунках, может восприниматься по-разному. Стоит также вспомнить комнату Эймса, которая была сконструированная художником Адельбертом Эймсом в году. Дальняя стена комнаты расположена не под прямым углом к боковым стенам, как это обычно бывает, а под очень острым углом к одной стене и, соответственно, под тупым углом к другой. Благодаря ложной перспективе, созданной в том числе узорами на стенах и полу в данном случае - черно-белые клетки , наблюдатель воспринимает эту комнату прямоугольной. В результате оптической иллюзии, человек, стоящий в ближнем к наблюдателю углу такой комнаты, выглядит великаном, а находящийся в дальнем углу — карликом. При передвижении человека из одного угла в другой, создается ощущение, что он увеличивается в размерах или уменьшается. При разглядывании такой комнаты возникает много иллюзий: В приложениях компьютерной графики реального времени, например в компьютерных играх, выделяют три основных вида источников света:. Точечный источник света — источник, излучающий свет по всем направлениям равномерно и размерами которого по сравнению с расстоянием, на котором оценивается его действие, можно пренебречь. Прожектор представляет собой герметичную рефлекторную осветительную электроустановку. Для обеспечения большей безопасности и возможности использования на улице, прожекторы защищены от повышенного уровня влажности и пыли, от динамического воздействия потоков воды и сильной струи воды. Различают следующие типы прожекторов:. Они лишь приближённо описывают свои аналоги в физическом мире, тем не менее, в сочетании с качественными моделями затенения, например, затенением по Фонгу они позволяют создавать вполне реалистичные изображения затемнение по Фонгу будет рассмотрено в этой главе позже. Источник света — это любой объект, излучающий энергию в световом спектре. По своей природе подразделяются на искусственные и естественные. Искусственные источники света — технические устройства различной конструкции и различными способами преобразования энергии, основным предназначением которых является получение светового излучения как видимого, так и с различной длиной волны, например, инфракрасного. В источниках света используется в основном электроэнергия, но так же иногда применяется химическая энергия и другие способы генерации света например, триболюминесценция, радиолюминесценция, биолюминесценция и др. В отличие от искусственных источников света, естественные источники света представляют собой природные материальные объекты: Солнце, Луна, Полярные сияния, светлячки, молнии и проч. Естественные источники света — это природные материальные объекты и явления, основным или вторичным свойством которых является способность испускать видимый свет. В отличие от естественных источников света, искусственные источники света являются продуктом производства человека или других разумных существ. К естественным или природным источникам света относят: Солнце, Луну, планеты, кометы, полярные сияния, атмосферные электрические разряды, биолюминесценцию живых организмов, свет звезд и иных космических объектов, свечение окисляющихся органических продуктов и минералов, и проч. Естественные источники света играют первостепенную роль в существовании жизни на земле и других планетах, и оказывают значительное воздействие на окружающую среду. Представляет собой светонепроницаемый ящик с отверстием в одной из стенок и экраном матовым стеклом или тонкой белой бумагой на противоположной стенке. Лучи света, проходя сквозь отверстие диаметром приблизительно 0,5—5 мм, создают перевёрнутое изображение на экране. На основе камеры-обскуры были сделаны некоторые фотокамеры. Идеальная камера-обскура будет иметь бесконечную глубину резкости , то есть все видимые точки изображения будут в фокусе. Изображением точки будет опять же точка. Камера-обскура имеет два недостатка:. Камера-обскура не обеспечивает высокой резкости изображения. До определенного предела резкость изображения может быть повышена путем уменьшения диаметра отверстия, но при слишком сильном уменьшении изображение становится ещё более расплывчатым. Обскура характеризуется бесконечно большой глубиной резко изображаемого пространства. Говорить о фокусном расстоянии обскуры можно только условно. Под эквивалентным фокусным расстоянием такой камеры обычно понимают расстояние от отверстия до экрана f. Увеличение отверстия до 1 мм уменьшает число до Фактор выдержки, таким образом, уменьшается до Время изобретения камеры-обскуры неизвестно. Открытие принципа долго приписывалось Роджеру Бэкону — Таким образом, можно утверждать, что со времен античности известен способ построения изображения при помощи малого отверстия, выполняющего роль объектива современной фотокамеры. Еще в древности было замечено, что луч солнца, проникая сквозь небольшое отверстие в тёмное помещение, оставляет на плоскости световой рисунок предметов внешнего мира. Ещё в г. Предметы изображаются в точных пропорциях и цветах, но в уменьшенных, по сравнению с натурой, размерах и в перевёрнутом виде. При этом масштаб изображения тем крупнее, чем дальше от окна находится стена. Этот эффект был использован для различных опытов и рисования. Подобный опыт вы можете проделать и сами: Если маленькое отверстие направить на ярко освещенный предмет, на экране появится его уменьшенное перевернутое изображение. Принцип работы камеры — обскуры стенопа описал в своих трудах выдающийся итальянский учёный и художник эпохи возрождения Леонардо да Винчи В своих работах он писал: Когда изображения освещенных предметов попадают через малое круглое отверстие внутрь очень темной комнаты, то, поместив на некотором расстоянии от отверстия лист белой бумаги, вы обнаружите на ней все предметы в их соответствующих размерах и цветах. Они будут уменьшенных размеров и обращенными по причине вышеуказанного пересечения лучей. Изображение предмета, освещенного солнцем, будет казаться как бы нарисованным на бумаге, если взять тонкую бумагу и изображение рассматривать сзади. Затем Леонардо да Винчи приводит схему расположения отверстия и экрана и ход световых лучей. Следует отметить, что он не говорит о камере-обскуре как об изобретении. Из чего можно заключить, что не Леонардо да Винчи первый описал это устройство. О камере - обскуре писали также в своих трудах многие другие исследователи. Голландский физик и математик Гемм Фризиус наблюдал в г. В своей первоначальной форме она представляла собой затемненную комнату с отверстием в стене. Изображения предметов, находящихся вне комнаты, проецировались через отверстие на противоположную стену, и люди, находящиеся в комнате, могли наблюдать эти изображения и переносить их на бумагу. В XIII веке были изобретены очки. Очковое стекло перекочевало затем в зрительную трубу Галилео Галилея. В России великий учёный М. Ломоносов положил начало развитию светосильных зрительных труб и оптических приборов. Итальянский математик и физик Джироламо Кардано в камере-обскуре с линзой проецировал изображение с помощью зеркала на матовую стеклянную пластину. Полученное изображение можно было обвести на бумаге. Итальянец, Бенедетти, в книге о математических и физических наблюдениях, изданной в Турине в г. Линза, применявшаяся Барбаро и Бенедетти, была плоско-выпуклой. Кеплер был первым, понявшим преимущество сложной оптической системы, состоящей из вогнутой и выпуклой линзы. В году Кеплер усовершенствовал камеру-обскуру. Он создал ахроматическую оптическую систему, состоящую из вогнутой и выпуклой линз, это позволило увеличить угол поля зрения камеры-обскуры. В году создана первая компактная камера-обскура. Стало возможным направлять камеру-обскуру в любом направлении и выполнять зарисовки с натуры передавая безукоризненную перспективу, свойственную фотографии при этом точно фиксировать детали. С её помощью были документально запечатлены виды Петербурга, Петергофа, Кронштадта и других русских городов. Была создана первая компактная камера-обскура. Развитие химии позволило трудами многих изобретателей создать процесс быстрого получения устойчивого во времени изображения, при помощи специального устройства. Используя камеру-обскуру изображения можно было фиксировать на бумаге при помощи карандаша, кисти или наблюдать, однако, возникла необходимость в более простом способе регистрации изображения. Постепенно становилось понятно, что основой нового процесса закрепления изображения являются свойства света. Если в оптике предпосылки для изобретения светописи сложились много веков назад, то в химии они стали возможными только в XVIII веке, когда химия как наука достигла достаточного развития. Труд рисовальщика был упрощён. В году компания Sony выпустила первую цветную коммерческую цифровую видеокамеру, а годом позже - легендарную Mavica Magnetic Video Camera. Эта камера записывала отдельные кадры в аналоговом формате NTSC, не случайно ее называли "статическая видеокамера" Still Video Camera. Отснятые изображения сохранялись на гибком перезаписываемом магнитном диске Video Floppy. Этот диск имел размер 2 дюйма, на него записалось 50 кадров в режиме телевизионного поля или 25 - в полнокадровом режиме. Также допускалась запись аудиокомментариев. Несмотря на то, что Mavica не была полностью цифровой камерой, она совершила настоящий переворот - пользователи, наконец, получили удобное, компактное устройство для съемок, которое записывало кадры на диск. Первой полностью цифровой камерой считается All-Sky camera, созданная в канадском университете Калгари для съемок северного сияния. В дальнейшем развитие цифровой фотографии шло по нарастающей. Первой моделью, сохранявшей изображение в виде файла стала анонсированная в году Fuji DS-1P, оснащенная 16 Мб встроенной энергозависимой памяти. А уже в году Kodak представила первую профессиональную цифровую зеркальную камеру DCS, оснащенную 1,3-Мп сенсором. В принципе, современный фотоаппарат отличается от камеры-обскуры только тем, что вместо точечного отверстия в нем используется система линз объектив. Но это позволяет устранить основные недостатки камеры-обскуры:. Но объективы не обеспечивают бесконечной глубины резкости. Под компьютерной геометрией понимают математический аппарат, применяемый в компьютерной графике. Реалистичность восприятия человеком сложного компьютерного изображения определяется умением разработчика математической модели изображаемого объекта или процесса достоверно повторить на экране его развитие в пространстве и во времени. Модель включает в себя систему уравнений и алгоритмов их реализации. Математической основой построения модели являются уравнения, описывающие форму и движение объектов. Все многообразие геометрических объектов является комбинацией различных примитивов — простейших фигур, которые в свою очередь состоят из графических элементов — точек, линий и поверхностей. Компьютерная геометрия оперирует не с рисунками, а с числами координатами точек, векторов, матрицами преобразований, списками данных и отношениями между ними, выраженными также в цифровой форме. Исходная информация, обработанная специальными алгоритмами, преобразуется в другие цифровые данные, интерпретируемые как искомый результат — модель объекта, его экранное изображение, отношения между объектами сцены и т. Систематизация формул, необходимых для работы с графическими объектами, приведение их к алгоритмическому виду отличает компьютерную графику от обычной, в которой свойства и взаимосвязь графических объектов визуально воспринимаются глазами человека и интеллектуально интерпретируются его мозгом. Компьютерная геометрия есть математический аппарат, положенный в основу компьютерной графики. В свою очередь, основой компьютерной геометрии составляют различные преобразования точек и линий. При использовании машинной графики можно по желанию изменять масштаб изображения, вращать его, смещать и трансформировать для улучшения наглядности перспективного изображения. Все эти преобразования можно выполнить на основе математических методов. Преобразования, как и компьютерную геометрию, разделяют на двумерные, или преобразования на плоскости, и трехмерные или пространственные. Задачи, решаемые геометрическим моделированием. Задание точки на плоскости. Точки на плоскости задаются с помощью двух ее координат. Таким образом, геометрически каждая точка задается значениями координат вектора относительно выбранной системы координат. Координаты точек можно рассматривать как элементы матрицы [x,y], то есть в виде вектор-строки или вектор-столбца. Положением этих точек управляют путем преобразования матрицы. Точки на плоскости xy можно перенести в новые позиции путем добавления к координатам этих точек констант переноса:. Для перемещения точки на плоскости надо к матрице ее координат прибавить матрицу коэффициентов преобразования. Рассмотрим результаты матричного умножения матрицы [x,y], определяющей точку Р и матрицы преобразований 2х2 общего вида:. Для этого исследуем несколько частных случаев. Матрица преобразований приводит к матрице, идентичной исходной,. При этом изменений координат точки Р не происходит. Следовательно, данное матричное преобразование эквивалентно перемещению исходной точки в направлении х. В результате получаем изменение масштабов в направлениях x и y. Если a d, то перемещения вдоль осей неодинаковы. Если 0 Если a или и d отрицательны, то происходит отображение координат точек. Произошло отображение точки относительно оси у. Этот эффект называется сдвигом. Преобразование общего вида, примененное к началу координат не приведет к изменению координат точки 0,0. Следовательно, начало координат инвариантно при общем преобразовании. Это ограничение преодолевается за счет использования однородных координат. Если подвергнуть общему преобразованию различные геометрические фигуры, то можно установить, что параллельные прямые преобразуются в параллельные прямые, середина отрезка — в середину отрезка, параллелограмм — в параллелограмм, точка пересечения двух линий — в точку пересечения преобразованной пары линий. Четыре вектора положения точек единичного квадрата с одним углом в начале координат записываются в виде. Применение общего матричного преобразования к единичному квадрату приводит к следующему:. Воспользуемся этим свойством для нахождения матрицы преобразования для вращения на произвольный угол. Общую матрицу 2х2, которая осуществляет вращение фигуры относительно начала координат, можно получить из рассмотрения вращения единичного квадрата вокруг начала координат. Матрица преобразования общего вида записывается так:. Поворот на 90 0 можно осуществить с помощью матрицы преобразования. Если использовать матрицу координат вершин, то получим, например:. Поворот на получается с помощью матрицы:. Чистое двумерное вращение в плоскости xy осуществляется вокруг оси, перпендикулярной к этой плоскости. Отображение определяется поворотом на 0 вокруг оси, лежащей в плоскости ху. Преобразованные новые выражения определяются соотношением:. Преобразования переноса, масштабирования и поворота записываются в матричной форме в виде. Очевидно, что перенос, в отличие от масштабирования и поворота, реализуется с помощью сложения. Это обусловлено тем, что вводить константы переноса внутрь структуры общей матрицы размера 2х2 не представляется возможным. Желательным является представление преобразований в единой форме — с помощью умножения матриц. Эту проблему можно решить за счет введения третьей компоненты в векторы точек и , то есть представляя их в виде и. Матрица преобразования после этого становится матрицей размера 3х Это необходимо, поскольку число столбцов в матрице, описывающей точку, должно равняться числу строк в матрице преобразования для выполнения операции умножения матриц. Поскольку матрица 3х2 не является квадратной, она не имеет обратной матрицы. Эту трудность можно обойти, дополнив матрицу преобразования до квадратной размера 3х3. Заметим, что третья компонента векторов положения точек не изменяется при добавлении третьего столбца к матрице преобразования. Третий элемент здесь можно рассматривать как дополнительную координату вектора положения. Итак, вектор положения [х у 1] при воздействии на него матрицы 3х3 становится вектором положения в общем случае вида [X Y Н]. Плоскость, в которой теперь лежит преобразованный вектор положения, находится в трехмерном пространстве. Однако сейчас нас не интересует то, что происходит в трехмерном пространстве. Результат преобразований показан на рис. Рассматривая три компоненты, запишем это в виде. Таким образом, двумерный вектор [х у] представляется трехкомпонентным вектором [hx hy h]. Разделив компоненты вектора на однородную координату h, получим. Не существует единственного однородного координатного представления точки в двумерном пространстве. Например, однородные координаты 12, 8, 4 , 6, 4, 2 и 3, 2, 1 представляют исходную точку [3 2]. Для простоты вычислений выбираем [х у l] , чтобы представить не преобразованную точку в двумерных однородных координатах. Равенство единице дополнительной координаты означает, что преобразованные однородные координаты равны исходным координатам. Преимущество введения однородных координат проявляется при использовании матрицы преобразований общего вида порядка 3х3. Указанные операции рассмотрены ранее. Чтобы показать воздействие третьего столбца матрицы преобразований 3х3, рассмотрим следующую операцию:. Переменная Н, которая определяет плоскость, содержащую преобразованные точки, представленные в однородных координатах, теперь образует уравнение плоскости в трехмерном пространстве. Это преобразование показано на рис. Выполним нормализацию для того, чтобы получить обычные координаты:. Как показано на рисунке, центром проекции является начало координат. Основная матрица преобразования размера 3х3 для двумерных однородных координат может быть подразделена на четыре части:. Как мы видим, а, b, с и d осуществляют изменение масштаба, сдвиг и вращение; т и п выполняют смещение, а р и q — получение проекций. Оставшаяся часть матрицы, элемент s, производит полное изменение масштаба. Чтобы показать это, рассмотрим преобразование. При s 1 уменьшение масштаба. Двумерное вращение вокруг произвольной оси. Выше было рассмотрено вращение изображения около начала координат. Однородные координаты обеспечивают поворот изображения вокруг точек, отличных от начала координат. Таким образом, поворот вектора положения [х у 1 ] около точки т, п на произвольный угол может быть выполнен с помощью преобразования. Выполнив две операции умножения матриц, можно записать. Действие, выполненное с помощью матрицы. Как сказано выше, необходимо вначале осуществить перенос изображения таким образом, чтобы желаемый центр вращения находился в начале координат. Это осуществляется с помощью матрицы переноса. Затем следует применить матрицу вращения и, наконец, привести результаты к началу координат посредством обратной матрицы. Двумерные вращения около каждой оси ортогональной системы представлены на рисунке. Трехмерные преобразования и проекции. Аналогично тому, как точка на плоскости описывается вектором x,y , точка в трехмерном пространстве описывается вектором x,y,z. Как и в двухмерном случае, для возможности реализаций трехмерных преобразований рис. Эта матрица может быть представлена в виде 4-х отдельных частей. В общем случае проекции рис. Будем рассматривать случай проецирования 3 измерений в 2. Проекция трехмерного объекта представленного в виде совокупности точек строится при помощи прямых проекционных лучей, которые называются проекторами и которые проходят через каждую точку объекта и, пересекая картинную плоскость, образуют проекцию рис. Определенным таким образом класс проекций существует под названием плоских геометрических проекций, т. Многие картографические проекции являются либо не плоскими, либо не геометрическими. Плоские геометрические проекции в дальнейшем будем называть просто проекциями. Проекции делятся на два основных класса:. Параллельные проекции делятся на два типа в зависимости от соотношения между направлением проецирования и нормалью к проекционной плоскости рис. Наиболее широко используемыми видами ортографических проекций является вид спереди, вид сверху план и вид сбоку, в которых картинная плоскость перпендикулярна главным координатным осям. Если проекционные плоскости не перпендикулярны главным координатным осям, то такие проекции называются аксонометрическими. При аксонометрическом проецировании сохраняется параллельность прямых, а углы изменяются; расстояние можно измерить вдоль каждой из главных координатных осей в общем случае с различными масштабными коэффициентами. Изометрическая проекция — нормаль к проекционной плоскости а следовательно и направление проецирование составляют равные углы с каждой из главных координатных осей рис. Однако существует лишь 4 различных изометрических проекции если не рассматривать удаление скрытых линий , так как векторы a, a, a и -a,-a,-a определяют нормали к одной и той же проекционной плоскости. Изометрическая проекция обладает следующим свойством: Поэтому можно проводить измерения вдоль направления осей с одним и тем же масштабом. Косоугольные наклонные проекции сочетают в себе свойства ортографических проекций видов спереди, сверху и сбоку со свойствами аксонометрии. В этом случае проекционная плоскость перпендикулярна главной координатной оси, поэтому сторона объекта параллельная этой плоскости, проецируется так, что можно измерить углы и расстояния. Проецирование других сторон объекта также допускает проведение линейных измерений но не угловых вдоль главных осей. Отметим, что нормаль к проекционной плоскости и направление проецирование не совпадают. Двумя важными видами косоугольных проекций являются проекции:. Кавалье cavalier — горизонтальная косоугольная изометрия военная перспектива. В результате проекция отрезка, перпендикулярного проекционной плоскости, имеет ту же длину, что и сам отрезок, то есть укорачивание отсутствует. Кабине cabinet — фронтальная косоугольная диметрия. Проекции кабине являются более реалистическими, чем проекции Кавалье, т. Центральная проекция любой совокупности параллельных прямых, которые не параллельны проекционной плоскости, будут сходится в точке схода. Точек схода бесконечно много. Если совокупность прямых параллельна одной из главных координатных осей, то их точка схода называется главной точкой схода. Имеются только 3 такие точки, соответствующие пересечениям главных координатных осей с проекционной плоскостью. Центральные проекции классифицируются в зависимости от числа главных точек схода, которыми они обладают, а, следовательно, и от числа координатных осей, которые пересекают проекционную плоскость. Двухточечная проекция широко применяется в архитектурном, инженерном и промышленном проектировании. Трехточечные центральные проекции почти совсем не используются,т. При рендеринге визуализации изображений вычислительная система обрабатывает массив данных о структуре модели. Вы уже знаете, что трехмерная модель представляет собой описание объекта явления , выполненное на строго определённом языке или в виде структуры данных. Это описание содержит геометрические данные, данные о координатах положения точки наблюдателя, информацию об освещении, степени наличия какого-то вещества, напряжённость физического поля например, при визуализации данных физических и медицинских исследований и т. Говоря о компьютерной графике, отметим, что визуализация — одна из наиболее важных операций, на практике она тесным образом связана с остальными. Подавляющее большинство программных пакетов трехмерного моделирования и анимации включают в себя функцию рендеринга в обязательном порядке. С точки зрения этапов процесса технологии создания 3D-изображений различают предварительный рендеринг, как достаточно медленный процесс визуализации, применяющийся в основном при создании видео, и рендеринг в реальном режиме, применяемый в компьютерных играх. Последний часто использует 3D-ускорители. На текущий момент разработано множество алгоритмов визуализации. Существующее программное обеспечение может использовать несколько алгоритмов для получения конечного изображения. Трассирование малого количества лучей достаточного для получения изображений занимает чрезмерное количество времени даже на высокопроизводительных вычислительных системах, если не применяется аппроксимация семплирование. Необходимость ускорения процедуры привела к появлению четырех групп методов, более эффективных, чем моделирование всех лучей света, освещающих сцену:. При использовании методов растеризации сканирования строк визуализация объектов сцены производится проецированием их на экран без рассмотрения эффекта перспективы относительно наблюдателя. В методе бросания лучей трехмерная сцена рассматривается с определенной точки положение камеры. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пикселя на двумерном экране. При этом лучи прекращают своё распространение в отличие от метода обратного трассирования , когда достигают любого объекта сцены либо её фона. При методе трассировки лучей из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. Но при этом луч не прекращает своё распространение, а разделяется на три компоненты, луча, каждый из которых вносит свой вклад в цвет пиксела на двумерном экране: Количество таких разделений на компоненты определяет глубину трассирования и влияет на качество и фотореалистичность изображения. Современные 3D-редакторы совмещают в себе несколько техник, чтобы получить достаточно качественное и фотореалистичное изображение. Рассматривая шрифт как объект компьютерной графики, нужно отметить, что существует несколько стандартов шрифтов. Наиболее популярны шрифты корпорации Adobe Systems, разработавшей стандарт Type 1 масштабируемые шрифты, предназначенные для работы с устройствами PostScript , и Microsoft Corp. Оба стандарта имеют свои достоинства и недостатки, что привело к их параллельному сосуществованию. Так же известен тип шрифта OpenType, который является расширением TrueType. Если вы предполагаете выводить свои документы на фотонаборном автомате, то вам лучше не пользоваться шрифтами TrueType. Это совсем не значит, что они плохи. Просто шрифты Type l написаны на языке PostScript, родном для фотонаборных автоматов, и в случае их использования вероятность неправильной интерпретации заметно меньше, чем при использовании шрифтов TrueType. Если же вы собираетесь выводить созданные публикации на принтере или работаете в сфере Web-дизайна, то, в принципе, безразлично, каким шрифтом пользоваться. Однако шрифты TrueType поддерживаются системой, в то время как для шрифтов Type l необходима промежуточная поддержка например, Adobe Type Manager. Поэтому при работе в офисных приложениях предпочтение отдается все же шрифтам TrueType. Шрифты TrueType и OpenType контурные, то есть их изображение формируется с помощью прямых и кривых линий. Для тех и других шрифтов возможны масштабирование и поворот. Для контурных шрифтов Type 1 возможны масштабирование и поворот. Растровые шрифты поддерживаются системой, поскольку некоторые программы все еще зависят от них. Растровые шрифты хранятся в файлах в виде точечных рисунков и создаются путем отображения наборов точек на экране и бумаге. Растровые точечные шрифты - шрифты, сохраняемые в виде точечных рисунков. Растровый шрифт имеет конкретный размер и разрешение для конкретного принтера; символы такого шрифта не могут масштабироваться или поворачиваться. Если принтер не поддерживает растровые шрифты, он не сможет их напечатать. Все пять шрифтов в этом списке являются растровыми: Courier, MS Sans Serif, MS Serif, Small, Symbol примеры на Рис. Типовые источники света и свойства материалов. Изучив предыдущие примеры, вы получили представление о направленном источнике света и материале объектов. Теперь нам предстоит разобраться с этими вещами основательнее. В программах для трехмерной графики поддерживаются различные источники света, которые можно условно разделить на три типа:. Стандартные источники света в свою очередь можно разделить на несколько групп:. Направленные источники используются в основном для того, чтобы осветить конкретный объект или участок сцены. При помощи направленных источников света можно имитировать, например свет автомобильных фар, луч прожектора или карманного фонарика и т. Всенаправленные источники света равномерно излучают свет во всех направлениях. Используя их, можно имитировать, например освещение от электрических ламп, фонарей, свет пламени и др. Большинство источников света характеризуются такими параметрами, как Multiplier Яркость , Decay Затухание и Shadow Map Тип отбрасываемой тени. По умолчанию, Multiplier Яркость любого источника света равна единице, а параметр Decay Затухание выключен. Направленный источник располагается в бесконечности. Вектор, задаваемый при его инициализации, определяет направление потока испускаемых лучей. Интенсивность источника постоянна для каждой точки пространства. Данный источник света можно считать моделью солнечного освещения. При такой модели освещения если для всех вершин квадрата задать одну и ту же нормаль, то при любом его положении все точки имеют один и тот же цвет. Цвет этот определяется комбинацией цвета материала и источника света. Если квадрат материала желтого цвета освещать белым светом, результат будет точно таким же, как и при освещении квадрата белого материала, источником света с наложенным желтым светофильтром. Для получения действительно реалистичных изображений направленный источник не годится в принципе, например, стены комнаты будут иметь ровный оттенок. Для таких целей предусмотрен точечный источник света, отличающийся от направленного именно тем, что при его использовании учитывается реальное положение источника в пространстве. Точечный источник света похож на лампочку или свечу, лучи света испускаются из какой-то точки во всех направлениях. Помимо положения, параметрами такого источника являются его интенсивность и ослабление. Интенсивность точечного источника - это его изначальная яркость, мощность. Явно она не задается, ее определяют значения цветовых составляющих поля Diffuse. Ослабление складывается из нескольких составляющих: Область действия определяется линейной характеристикой, расстоянием. Все точки, расположенные от источника дальше этого расстояния, никак им не освещаются. Коэффициенты закона ослабления их три задают, как падает освещенность в пространстве. Первый коэффициент соответствует неизменному, постоянному освещению. Если установить такое правило, то, независимо от расстояния до источника света, все точки, попадающие в область освещения, освещаются одинаково. Второй коэффициент соответствует линейному затуханию. По мере удаления от источника света интенсивность освещения падает по линейному закону так, что на границе области его интенсивность становится нулевой. Последний коэффициент определяет квадратичное убывание интенсивности, степень падения освещенности — квадрат. Коэффициенты задаются вещественными, обычно их значения нулевые или единичные. Самой распространенной схемой является линейный закон убывания, но вы можете строить и собственный, сложный закон освещенности, а не использовать определенную схему если задать единичными все три коэффициента, интенсивность падает по полиномиальному закону. Для линейного закона убывания в настройках источника света в программе-редакторе необходимо установить функцию Decay Затухание , которая определяется обратной зависимостью света от расстояния или квадрата расстояния. Обычно под рассеянием света понимается рассеянное отражение лучей света от шероховатых поверхностей. В некоторых случаях применяется термин диффузия света, также означающий рассеяние света по всевозможным направлениям при его отражении от матовых и шероховатых поверхностей. Лучи света рассеиваются не только при отражении от поверхностей или взаимодействии с краями препятствий, но и при прохождении света через прозрачную или просвечивающую среду. В случае наличия в среде оптических неоднородностей переизлучение энергии электромагнитной волны происходит как в направлении проходящей волны пропускание , так и в стороны. Изменение направления распространения света, обусловленное пространственной неоднородностью среды, когда на пути распространения света встречаются мельчайшие частицы, которое воспринимается как несобственное свечение среды, также называется рассеянием света. Рассеяние света наряду с дифрагированной, преломленной и отраженной на неоднородностях составляющими, образует рассеянный свет. Нарушение оптической однородности сплошной среды, при которой показатель преломления среды не постоянен, а меняется от точки к точке, является принципиально необходимым для рассеяния света. Оптическими неоднородностями кроме границ среды являются не только включения инородных частиц, но и флуктуации плотности, анизотропии и концентрации в чистых веществах, которые возникают в силу статистической природы теплового движения частиц. Рассеяние света тем больше, чем менее прозрачна и однородна среда, и чем больший путь проходит в ней свет. В общем случае под рассеянием света понимается изменение характеристик оптического излучения света при его взаимодействии с веществом. Такими характеристиками могут быть пространственное распределение интенсивности, частотный спектр, поляризация света рассеянный свет по некоторым направлениям частично поляризован. Вследствие обилия и разнообразия факторов, определяющих рассеяние света, развить единый и одновременно детальный способ его описания для различных случаев не удалось. Рассматриваются идеализированные ситуации с разной степенью адекватности самому явлению. Зеркальное отражение отличает определённая связь положений падающего и отражённого лучей:. Интенсивность отражённого света характеризуется коэффициентом отражения. Диффузное отражение — его рассеивание неровной поверхностью второй среды по всем возможным направлениям. Пространственное распределение отражённого потока излучения и его интенсивность различны в разных конкретных случаях и определяются соотношением между длинной волны падающего света и размерами неровностей, распределением неровностей по поверхности, условиями освещения, свойствами отражающей среды. Если при построении полигональной поверхности для каждой грани используется по одной нормали, то модель освещения создает изображение, состоящее из отдельных многоугольников. С помощью методов закраски заливки можно получить сглаженное изображение. Одним из таких методов является метод Гуро. Метод Гуро используется для равномерной заливки граней. Для того чтобы изобразить объект методом построчного сканирования, нужно в соответствии с моделью освещения рассчитать интенсивность каждого пикселя вдоль сканирующей строки. Нормали к поверхности аппроксемируются в вершинах многоугольников. Однако сканирующая строка не обязательно проходит через вершины многоугольника. При закраске Гуро сначала определяется интенсивность вершин многоугольника, а затем с помощью билинейной интерполяции вычисляется интенсивность каждого пиксела на сканирующей строке. Заливка для диффузного отражения проводится так:. Заливаем каждый треугольник по линейной интерполяции цветов в вершинах. Рассмотрим, например, участок полигональной поверхности на Рис. Значение интенсивности в точке P определяется линейной интерполяцией интенсивности в точках Q и R. Для получения интенсивности в точке Q — пересечении ребра многоугольника со сканирующей строкой — нужно линейной интерполяцией интенсивностей A и B найти интенсивность в точке Q:. Аналогично для получения интенсивности R линейно интерполируются интенсивности в вершинах B и C, то есть:. Для двух пикселов в t1 и t2 на сканирующей строке:. Вычитая, получим, что вдоль строки:. Недостаток метода Гуро заключается в том, что он обеспечивает лишь непрерывность значений интенсивности вдоль границ многоугольников, но не обеспечивает непрерывности изменения интенсивности. Еще одна проблема метода Гуро состоит в том, что усреднение нормалей к многоугольникам, приводит к тому неправильно передается форма поверхностей. Закраска Гуро лучше всего выглядит в сочетании с простой моделью с диффузным отражением, так как форма бликов при зеркальном отражении сильно зависит от выбора многоугольников, представляющих объект или поверхность. Метод Фонга — второй рассматриваемый метод заливки, основная его идея состоит в том, что для каждой точки изображения устанавливаются пространственные координаты, исходя из которых, считается яркость для точки. Основной недостаток метода — большая сложность вычислений. Хотя метод Фонга устраняет большинство недостатков метода Гуро, он тоже основывается на линейной интерполяции. Поэтому в местах разрыва первой производной интенсивности заметен эффект полос Маха, хотя и не такой сильный, как при закраске Гуро. Однако, иногда этот эффект проявляется сильнее у метода Фонга, например для сфер. Кроме того, оба метода могут привести к ошибкам при изображении невыпуклых многоугольников Рис. Также возникают трудности, когда любой из этих методов применяется при создании последовательности кинокадров. Например, закраска может значительно изменяться от кадра к кадру. Это происходит из-за того, что правило закраски зависит от поворотов, а обработка ведется в пространстве изображения. Поэтому, когда от кадра к кадру меняется ориентация объекта, его закраска цвет тоже изменяется, причем достаточно заметно. Было предложен метод закраски Гуро и Фонга, инвариантный относительно поворота. Введение в трассировку лучей, синтез изображений. Трассировка лучей — один из методов геометрической оптики — исследование оптических систем путём отслеживания взаимодействия отдельных лучей с поверхностями. В узком смысле — технология построения изображения трёхмерных моделей в компьютерных программах, при которых отслеживается обратная траектория распространения луча от экрана к источнику. Серьёзным недостатком метода обратного трассирования является производительность. Метод растеризации и сканирования строк использует когерентность данных, чтобы распределить вычисления между пикселями. В то время как метод трассирования лучей каждый раз начинает процесс определения цвета пикселя заново, рассматривая каждый луч наблюдения в отдельности. Впрочем, это разделение влечёт появление некоторых других преимуществ, таких как возможность трассировать больше лучей, чем предполагалось для устранения контурных неровностей в определённых местах модели. Также это регулирует отражение лучей и эффекты преломления, и в целом — степень фотореалистичности изображения. Методы закраски заливки , которые обсуждались в предыдущем параграфе, позволили значительно увеличить реалистичность изображений, генерируемых компьютером, но все же им далеко до достижения фотореализма. Реальные объекты отбрасывают тени, когда освещаются ярким светом, и многие объекты отражают попадающий на них свет. Отраженный луч, в свою очередь, может освещать другие объекты или другие поверхности того же объекта. А некоторые тела целиком или полностью пропускают часть падающего света, который может снова освещать другие объекты. Ученые используют такие термины для описания этих процессов: Программа визуализации должна принимать в расчет эти явления, если надо получить фотореалистичные изображения. Взаимодействие между этими явлениями очень сложно. Отдельная поверхность сцены может освещаться несколькими различными источниками. К счастью, существуют методы, которые позволяют компьютеру учитывать все эти формы освещения. Лучший из них - метод трассировки лучей, который сначала был придуман как средство для удаления невидимых поверхностей, а позднее расширен так, чтобы учитывались эффекты отбрасывания теней, отражения и пропускания света. Метод трассировки лучей - не последнее достижение в представлении фотореалистичных изображений он тоже имеет свои недостатки и часто комбинируется с другими методами, чтобы получить еще более совершенные трехмерные изображения , но он достаточно близок к тому, чтобы создавать великолепные картинки, которые по качеству близки к фотографии. Самая большая проблема с этим методом то, что он очень медленный. Даже суперкомпьютеру могут потребоваться часы работы для экранизации сложной сцены с начала до конца. Та же операция может потребовать дней работы обычного персонального компьютера. Метод трассировки лучей математически сложен, но прост концептуально. Что реально делает компьютер, так это отслеживает лучи света, идущие от источника в глаз.


Примитивы в AutoCAD


Технические средства ввода графической информации. Особенности представления цвета в видеоадаптерах EGA и VGA. Элементарные аффинные преобразования в пространстве, составляющие базис операций машинной графики. Понятие текстуры и способы моделирования текстур. Вопросы для экзамена по курсу "Компьютерная графика". Наиболее распространенным устройством ввода графической информации в ПЭВМ является мышь. Она подключается к компьютеру через интерфейс RS Конструктивно близок к мыши манипулятор джойстик. Он представляет собой свободно передвигаемый стержень ручку и две кнопки-переключателя. Нажатие кнопок-переключателей фиксируется и обрабатывается программно. Обычно джойстик подключается к специальному игровому порту и в настоящее время в машинной графике используется редко. Работа с мышью организуется через механизм прерываний. Прикладная программа вызывает прерывание 33 h , передавая в регистрах необходимые параметры и получая через регистры возвращаемые драйвере значения. Существуют различные стандарты работы с мышью. Из драйверов наиболее известны mouse. Для программирования той или иной функции мыши требуется только знать ее номер и параметры, заносимые в регистры перед вызовом прерывания. Обычно номера функций драйвера заменяются их мнемоническими именами в заголовочном файле например, mouse. В [1,4] приводятся варианты программного обеспечения - для драйверов mouse. Любая библиотека обычно содержит следующие функции: По умолчанию форма курсора мыши определяется оборудованием и драйвером. В текстовом режиме курсор мыши отображается на экране совместно с текстовым курсором и представляет собой прямоугольник размером в один символ. Вид изображения при перекрытии курсором мыши чего-либо определяется параметром и передаваемыми функции изображения курсора текстового режима. Эти параметры маска экрана и маска курсора состоят из 16 бит и задают мерцание, цвет и фон, также изображаемый при наложении курсора символ. Маска экрана участвует в логической операции AND с атрибутами перекрытого участка экрана, далее выполняется операция XOR с маской курсора. Например, для инвертирования изображения маска экрана - 0 xFFFF , маска курсора - 0х В графическом режиме также имеется курсор по умолчанию от драйвера. Обычно это небольшая стрелка. Вид курсора также можно изменить. Над маской экрана и маской курсора выполняются аналогично текстовому режиму операции AND и XOR. Для создания собственного курсора полезна таблица взаимодействия масок: Следует обратить внимание на рациональную реализацию обработки событий от мыши. Ему передается адрес функции, которую следует вызвать при наступлении заданного события. Первый параметр - указатель на функцию, второй параметр - маска событий. События соединяются побитовой операцией ИЛИ. Функция, которая обрабатывает событие, получает маску вызывающего события, маску состояния кнопок мыши. Сканеры являются устройствами ввода изображений. Чаще всего их действие основано на оптических принципах. В настоящее время фактическим стандартом представления изображений сканерами является формат TWAIN. Этот формат поддерживает большинство драйверов различных сканеров. Конвертация из этого формата в формат какой-либо графической системы выполняется программно. При прикосновении светового пера к поверхности экрана компьютера фотоэлемент генерирует электрический импульс каждый раз, когда электронный луч дисплея в процессе сканирования пробегает точку, на которую установлено световое перо. Таким образом, считываются координаты точки экрана, на которой расположено световое перо и обеспечивается "рисование" на экране. Диджитайзер дигитайзер, digitazer , оцифровыватель. Устройство ввода точных двумерных координат объекта. Подключается к асинхронному порту СОМ1. Возможны бинарная передача данных, ASCII-строка, целочисленный ASCII-формат. Съем координат может производиться в следующих режимах: Технические средства получения твердой копии графической информации. Различные типы графопостроителей имеют различные системы команд, позволяющие управлять механическими узлами, обеспечивающие нанесение изображения как в одном, так и в нескольких цветах, с различными атрибутами пунктир, штрих-пунктир и т. Обычно "плоттер подключается к компьютеру через асинхронный порт СОМ1. Для выполнения рисунка плоттеру передаются команды рисование линии, рисование окружности и т. Эти команды образуют графические языки плоттеров. Практически любой современный принтер позволяет получать изображение, так как выводит информацию по точкам. Каждый символ представляется матрицей точек. Управляет принтером специальный набор команд, обычно называемый Esc-последовательностями. Эти команды позволяют задать режим работы принтера, прогон бумаги на заданное расстояние, собственно печать. Чтобы отличить управляющие коды от выводимой информации, они обычно начинаются с кода меньшего, чем 32 не ASCII-символ. Для большинства команд начальным является символ Esc код 27 совокупность подобных команд образует язык управления принтером. Каждый принтер имеет свой набор команд. Однако можно выделить набор команд, реализованный на достаточно широком классе принтеров. Наиболее просты 9-игольчатые принтеры типа Epson , Star и совместимые с ними. Они имеют команды перевода строки LF возврата каретки к началу строки CR , прогона бумаги до начала новой страницы F F установки интервала между строками, печати с нормальной или повышенной плотностью 80 или точек дюйм. Этим достигается программная совместимость. Большинство струйных принтеров на уровне языка управления совместимо с LQ-принтерами. Все они управляются языком PCL , также основанным на Е sc -последовательностях. Большинство принтеров работают с параллельным портом ЭВМ, который называется нередко принтерным портом. Остальные коды управления принтером передаются в потоке данных и должны формироваться программно. Принтер может послать компьютеру 3 сигнала: Первые два сигнала характерны для любой передачи данных. Последний сигнал является особенностью параллельного интерфейса. Следует также отметить, что параллельный интерфейс является односторонним осуществляет только вывод данных. Некоторые принтеры имеют две модификации - для параллельного и последовательного интерфейса. Дисплей как техническое средство компьютерной графики. Это основное устройство вывода информации. Большинство дисплеев в качестве формирователя изображения использует электронно-лучевую трубку ЭЛТ. Pa бота ЭЛТ основана на двух физических принципах: В памяти ЭВМ хранятся координаты точек изображения и информация об их цвете, яркости и др. Эти данные под управлением дисплейного контроллера преобразуются в сигналы управления лучом ЭЛТ. Существует 2 основных типа дисплеев, использующих ЭЛТ: Векторные дисплеи наиболее просты, требуют меньше памяти для хранения информации. Электронный луч последовательно обходит траекторию из отрезков прямых векторов , представляющих рисунок, воспроизводимый на экране. Изображения, формируемые векторными дисплеями, проигрывают по качеству растровым. Растровые дисплеи являются доминирующими. Они позволяют формировать практически любые изображения. Используется тот же принцип движения луча, что и в телевизоре. Электронный луч циклически совершает движение, образующее на экране последовательность строк растр Движение луча начинается в левом верхнем углу, выполняется перемещение от точки А к точке В. Затем луч быстро отклоняется в точку С. Отрезок прямой АВ называется прямым ходом луча по строке, отрезок ВС - обратным. Суммарное время, затрачиваемое на это перемещение, - период строчной развертки. Z - конечная точка растра. Движение луча отточки А до точки Z называется прямым ходом луча по кадру. Из точки Z луч быстро перемещается в точку А, сканирование завершается. Время одного полного движения по растру - период кадра. Реальные дисплеи имеют от до строк. Термин "пиксел" происходит от английских слов PICT URE ELEMENT. Множество всех пикселов на экране образует матрицу. Управление работой дисплея осуществляет дисплейный контроллер видеоконтроллер, видеоадаптер, дисплейный адаптер, видеокарта. Видеоадаптер выполняет 3 главные функции хранение информации об изображении; регенерацию изображения на экране ЭЛТ; связь с центральным процессором ЭВМ. ЭВМ имеет многочисленные видеорежимы или способы изображения данных на экране дисплея. Аппаратно обеспечивается регулярное раз в сек. Поэтому работа с изображениями сводится к операциям с видеопамятью. Существует 6 общепринятых стандартов видеоконтроллеров. Имеется также множество нестандартных для решения специальных задач. К стандартным видеоконтроллерам относятся: Палитра из 16 цветов, в графическом режиме можно задать любые 4 цвета. Устарел, практически не используется;. Имеет ту же разрешающую способность, что и MDA, но может работать в графическом режиме. Изображение качественное, используется широко. Благодаря новой организации управления памятью и формированием изображения можно смешивать цвета в различных комбинациях из палитры в 64 оттенка для каждого из 16 цветов оттенки тона. Как правило, обеспечивается совместимость с CGA, в ряде моделей - с MGA Hercules. Более высокая частота горизонтальной развертки - ряд частот: Векторная и растровая графика: Во втором случае этот же компромисс выглядит как задача определения параметров растра. Мировые координаты, нормированные координаты, координаты устройства, функция кадрирования. Эти координаты определяют положение объекта в некотором модельном мире. Нормированные координаты используются при хранении графических образов в памяти, в файлах и пр. При работе с конкретным устройством производится отображение пространства нормированных координат в координаты устройства. Пример - система автоматизированного проектирования печатных плат PCAD: Вывод на конкретное устройство выполняют утилиты PCPRINT для принтера, PCPLOTS для плоттера. Каждая из этих утилит позволяет настроиться на большой перечень устройств соответствующего класса. PLT в координаты устройства По тому же принципу работает Windows 95 при формировании заданий на печать. Если памяти достаточно, сначала формируется файл печати в формате расширенного метафайла EMF. Далее в фоновом режиме формируется задание на печать с учетом конкретного устройства. Изображение, получаемое средствами машинной графики, имеет четко определенную структуру. Наиболее распространенные графические примитивы и операции над ними. В компьютерной графике все, что относится к двумерным изображениям, обозначают 2 D 2- dimension , к трехмерным - 3D 3- dimension. Основные отличия текстового и графического режима видеоадаптера. Любой современный видеоадаптер может работать в двух режимах: В текстовом режиме экран делится на ячейки, соответствующие размеру символа. Обычно это 40 или 80 колонок, 25 или 50 строк. Каждая ячейка содержит атрибут и символ. Символ выводится на экран в ASCII коде, атрибут указывает, как представляется символ на экране цвет, интенсивность, мерцание, подчеркивание, инверсное изображение в зависимости от типа видеоадаптера. В графическом режиме экран представляется совокупностью пикселов. В графическом режиме верхний левый угол имеет координаты 0,0 , координаты Х и Y направлены аналогично. Чем отличаются с точки зрения машинной графики видеоадаптеры EGA,VGA,SVGA,MGA. Режим обозначается номером и определяется разрешением экрана и количеством цветов. Каждая видеоплата содержит собственный BIOS для работы с ней и поддержки основных своих функций. Через BIOS можно определить тип адаптера - EGA или VGA , установить нужный режим, системный шрифт заданного размера 8,14 или 16 пикселов высоты , палитру. Однако эти биты располагаются не последовательно в одном байте, а разнесены по 4 блокам битовым или цветовым плоскостям видеопамяти. Вся видеопамять обычно К делится на 4 равные части. Каждому пикселу соответствует по 1 биту каждой плоскости, причем эти биты расположены одинаково относительно начала плоскости параллельно. При выполнении операций записи в видеопамять производится параллельная модификация всех 4 битовых плоскостей. Регистры видеокарты делятся на группы. Каждой группе соответствует пара последовательных портов порт адреса и порт значения. Передачей данных между процессором, регистрами-защелками и видеобуфером управляет графический контроллер. Графический контроллер имеет 9 регистров, адресуемых через порт 3 CEh. Значения регистров задаются через порт 3 CF. Часть операций в качестве операндов используют байт, то есть воздействуют отдельно на каждый регистр. Такие операции воздействуют на каждый пиксел в отдельности. Этот регистр имеет номер 5. Для VGA имеется еще один режим записи. Бит 3 регистра определяет режим чтения 0 или 1 , биты 1 и 0 - режим записи Остальные биты этого регистра обычно нулевые. В режиме чтения 0 в процессор передается значение одного из 4 регистров-защелок. Указателем номера регистра-защелки служит специальный регистр считываемого банка еще одно название битовой плоскости Этот регистр имеет номер 4. Такое последовательное чтение битовых плоскостей применяется, например, npi записи изображения на диск. В режиме чтения 1 задействованы 2 регистра видеокарты, управляющие цветами. Однако гарантированно быстро узнать цвет конкретного пиксела нельзя. Максимально для этого может потребоваться 16 раз считывание по количеству цветов. Режим записи 0 является наиболее сложным, но дает большие возможности. Операция записи процессора инициирует комбинацию байтных и пиксельных операций. Байт данных от процессора можно использовать для модификации содержимого любых или всех битовых плоскостей и одновременно некоторое заданное значение пиксела можно использовать для модификации всех или любых пикселов. Значение пиксела - еп цвет. В операции задействованы 4 служебных регистра графического адаптера, вместе с байтом данных от процессора воздействующих на регистры-защелки. Например, регистр битовой маски номер 8 позволяет выделить нужный пиксел, чтобы сопоставить ему определенный цвет. Регистр маски плоскости относится к группе регистров, адресуемых через порт ЗС4. Для формирования значений используются также сдвиговые операции. В режиме записи 1 значения регистров-защелок непосредственно копируются в соответствующие бито вые плоскости. Другие регистры не действуют, посланное процессором значение не учитывается. Этот режим позволяет быстро копировать содержимое видеопамяти группами по 8 пикселов. Очевидно, режим может действовать только после заполнения регистров-защелок, когда процессор прочитает данные из видеобуфера Обычно этот режим применяется при перемещении изображения из одной области экрана в другую. В режиме записи 2 младшие 4 бита байта, посланного процессором, задают цвет отображения не защищенных битовой маской пикселов. Как уже отмечалось, регистр битовой маски защищает от изменения определенные плоскости. Регистр 3 графического контроллера устанавливает способ наложения новых пикселе на существующее изображение, то есть логическую операцию, применяемую к регистрам-защелкам и значении посланному процессором. Этот режим удобен для записи в видеобуфер на экран отдельных пикселов. Режим записи 3 поддерживается только адаптером VGA. В [3,4] излагается способ формирования данных для записи в битовые плоскости. Для одновременного отображения такого количества цветов под каждый пиксел отводится 8 бит. Эти биты идут последовательно образуя 1 байт. Плоскости не используются, видеопамять начинается с адреса 0хА Это стандартный режим с номером mode Существуют также нестандартные режимы адаптера VGA при работе с цветами. Здесь используются битовые плоскости, в которых в определенном порядке хранятся пикселы. В одной битовой плоскости хранятся пикселы 0,4,8 и т. Здесь также задействованы все служебные регистры, н меняется интерпретация находящихся в видеопамяти значений. Видеокарты SVGA совместимы с VGA , но имеют большой набор дополнительных режимов. VGA является стандартом, SVGA - его расширение. В цветном режиме в адаптерах SVGA под каждый пиксел отводится 1 байт, вся видеопамять разбивается на банки одинакового размера обычно по 64 К. Ряд карт позволяет работать сразу с двумя банками. Практически все различия между картами заключаются в установке режима с заданным разрешением и установке банка с заданным номером. Связь - через порты 0хЗС4 и 0хЗСЕ, работать можно на Си с привлечением ассемблера. При этом вводится стандартный набор расширенных режимов. Ряд SVGA-карт поддерживает т. Здесь для каждого пиксела вместо индекса в палитре непосредственно задается его RGB-значение. Обычно такими режимами являются HiColor 15 или К бит на пиксел и TrueColor 24 бита на пиксел. Наиболее проста организация TrueColor 16 млн. Для HiColor под каждый пиксел отводится 2 байта. Это дает всего 32 тысячи цветов;. Это дает всего 64 тысячи цветов. Известно, что любой цвет является композицией трех основных цветов: Дополнительные цвета - смесь основных: В зависимости от интенсивности яркости каждого из основных цветов в смеси получаем различные оттенки Следовательно, 4-битовая комбинация позволяет закодировать 15 базовых цветов. Практически любой видеоадаптер способен отобразить гораздо больше цветов, чем определяется коли чеством бит, отведенным под один пиксел. Например, монитор EGA адаптера способен отображать 64 цвета так как имеет 6-битовый видеосигнал. Видеоадаптер переводит 4-битовый цвет пиксела в 6-битовый видеосигнал Для перевода используется некоторое подобие таблицы, называемое палитрой. Цвет в палитре задается байтом вида 00 rgbRGB. Малые буквы обозначают бит интенсивности соответствующего цвета,. Существует возможность менять в таблице соответствие логического цвета и видеосигнала, выбирая его из 64 возможных цветов. Реализация цветной палитры для VGA гораздо сложнее. Для каждого цвета имеется битовая раскладка по компонентам 6 бит на каждый из 3 основных цветов - в EGA было по 2 бита на цвет. Дополнительные биты дают более тонкую раскладку по интенсивности, то есть обеспечивают более разнообразное смешивание 3 основных цветов. Схема получения битового сигнала на начальном этапе повторяет EGA , далее задействован еще ряд регистров, операции логического И. Помимо поддержки EGA видеоадаптер VGA имеет специальных регистров, где для каждого цвета хранится его битное представление. Обычно BIOS записывает в эти регистры набор цветов, принимаемый по умолчанию. Распределение цветов по регистрам видеоадаптера VGA: CGA-совместимые, цвета по умолчанию. Регистры 10 h - 1 Fh содержат упорядоченный по возрастанию набор оттенков серого. Каждая такая группа состоит из трех диапазонов цветов, упорядоченных по снижению яркости. Функция setrgbpalette делает то же самое, но диапазон цветов шире. Как программно осуществляется управление принтером. Принтеры очень хорошо приспособлены для вывода графики, так как строят изображение по точкам. Принтером управляет специальный набор команд, описываемый в документации на принтер. Каждая команда является набором символов имеет символическое имя или цифр кодов. Чтобы отличить команды от того, что следует напечатать, они предваряются неотображаемым символом, то есть символом с кодом, меньшим Такому коду не соответствует ни один символ кода ASCII. Обычно в качестве символа начала управляющей последовательности выступает Esc код Поэтому говорят об Esc-последовательностях управления принтером. При работе на языке С Esc-последовательности записываются в операторе вывода. Послать его можно в любой функции вывода, переключив поток вывода с экрана на принтер, или непосредственно в принтерный порт с помощью функции. Большинство струйных принтеров по языку управления совместимо с LQ-принтерами. Большинство лазерных принтеров других фирм тоже поддерживает этот язык. Основные отличия в подходах MS DOS и WINDOWS при разработке графических приложений. Текст тоже рассматривается как графика. GDI обеспечивает вывод на экран, принтер, плоттер и др. GDI избавляет приложения Windows от необходимости учитывать многие особенности устройств вывода. Например, как мы уже видели в DOS , адресация видеопамяти адаптеров CGA , EGA , VGA , SVGA выполняется по-разному. К тому же представление видеоданных сильно зависит от видеорежима разное количество байт на пиксел в зависимости от mode. Однако приложения Windows не работают непосредственно с видеопамятью. Вызываются соответствующие функции GDI реализованного в виде DLL. Функции GDI также не работают с аппаратурой. Для выполнения нужной графической операции GDI вызывает драйвер устройства вывода, ориентированный на особенности аппаратуры. Таким образом; GDI позволяет организовать вывод на некоторое логическое устройство. Функции GDI и драйверы обеспечивают независимость приложений от аппаратуры. С другой стороны, недоступность операций низкого уровня не позволяет нам влиять на производительность и отдает решение этих вопросов только на откуп создателей соответствующих системных программных средств. Логические устройства дают программисту большую свободу выбора выразительных средств. Например, логический видеомонитор имеет огромное разрешение, способность отображать практически любой цвет Реально - до 16 млн. Если задан цвет для палитры в 16 млн. Для монохрома - градации серого. Ситуация, когда приложение запрашивает у Windows одно, а получает другое, возникает и при работе со шрифтами. Приложения Windows не меняются при смене аппаратуры, требуется только соответствующий драйвер. Чем лучше аппаратура, тем ближе цвет и шрифт будут к запрошенным. Основные этапы преобразования и модели, используемые при переходе от изображений реального мира к компьютерным. Для описания графической информации используется иерархическая совокупность математических моделей. В зависимости от формы представления существует 4 основных модели графических изображений: Технология преобразования графических представлений - отображение Q: Технологический процесс - отображение Pi , осуществляющее получение i модели по i -1 -ой: Технологическая операция этап - отображение T iJ. Укрупненно технология преобразования изображения из начальной модели в конечную: Задание дискретности, координат и др. Запись растра на МД Мр. Выделение средних линий объектов выделение скелетов. Формирование векторной модели Мв. Основные этапы растр-векторного преобразования графических объектов. Процесс сканирования зависит от принципов работы сканера. Поэтому его не рассматриваем. Наиболее объемным и важным является второй этап, называемый также оцифровкой изображения. Бинарные изображения более просты. По сравнению с полутоновыми изображениями они имеют ограниченный класс шумов. Основной метод подавления шумов - логическая фильтрация. Наиболее часто встречающийся вид искажений графических изображений - неоднородность формы линий. Это может выражаться в. Основным фильтром, используемым для подавления шумов бинарных изображений, является сглаживающий фильтр, изменяющий значение центрального элемента окрестности в зависимости от количества однотипных с ним элементов в заданной окрестности. Алгоритм последовательного просмотра растра и применения каждому элементу данного фильтра называется алгоритмом логического сглаживания. Выделение средних линий скелетизация позволяет описать геометрические особенности объекта, что удобно при последующей обработке. Существует два типа алгоритмов выделения средней линии. Утоньшение, которое можно рассматривать как итерационное преобразование множества, имеющего непустую внутренность, в множество единичной ширины поперечного сечения путем последовательного его сжатия с обеих сторон. Выделение скелета или средних осей объекта, то есть выделение всех точек, равноудаленных по меньшей мере от двух точек на границе объекта. Методы выделения контуров условно можно разделить на следующие группы: В методах первого класса в окрестностях каждой точки вычисляют градиент перепада яркости. Точки резкого изменения градиента выделяются как контурные Так строится контурная модель, часто состоящая из незамкнутых штрихов. Эти методы используют, в основном, для полутоновых и цветных изображений. На основании такой модели очень трудно описать форму объекта. Поэтому часто исходные изображения сводятся к бинарным. На последних в основном используются методы двух других классов. Методы отслеживания наиболее проработаны и просты в реализации. Обычно сначала выделяются границы, потом выполняется их аппроксимация. Это требует больших затрат памяти и времени. Более универсальный подход - совмещение отслеживания и аппроксимации. Сканирующие методы позволяют выделять контуры объектов при однократном просмотре исходного изображения Для этого используются описания двух соседних строк изображения, списковые структуры. Ряд характеристик объекта удобнее вычислять при растровом представлении. Это площадь объекта, его длина, периметр, центр симметрии дискретного объекта, количество объектов изображения. Разработаны математические методы вычисления этих и других характеристик. Выделение непроизводных элементов производится на основе скелетированного изображения. Фактически данный этап сводится к построению некоторой структуры данных, элементами которой являются выбранные непроизводные элементы и связи между ними Разработаны различные способы представления скелетированных изображений, в специальной литературе даны сведения об их применимости. Растровый формат содержит больше информации о взаимоположении объектов изображения. Это полезно при их распознавании. Векторный формат более экономичен по памяти, более удобен в обработке. Чтобы соединить достоинства обоих форматов из растрового представления извлекают характеристики, используемые для распознавания данных и помещают их в структуру хранения. Возможно, что при этом множество всех характеристик объекта будет избыточным. Сейчас перевод растрового представления в векторное осуществляется не всегда, то есть формирование векторного представления и связанные с ним операции пропускаются. Однако существует разрыв между теорией и практикой. Часто в конкретных системах используются технические решения, ориентированные на тот класс объектов, с которым данная система работает. Конкретный вид бинарной информации при этом значения не имеет. Наиболее распространенные форматы представления изображений будут рассмотрены далее. До сих пор рассматривался процесс получения машинного вида изображения, введенного в компьютер извне. Чтобы создавать изображения некоторого класса на компьютере, требуется другой подход. Рассмотрим общие принципы построения таких моделей графических объектов. Процесс построения делится на 6 этапов: Анализ структуры объекта по принципу иерархии входящих в него элементов с выделением базовых, которые нецелесообразно расчленять далее по соображениям целостности элементов или по характеру задач;. Анализ структуры объекта с фиксацией всех связей между элементами;. Объединение математических моделей базовых элементов для построения математической модели объекта изображения: Объединение в группы GP одинаковых параметров математических моделей элементов с целью минимизации общего объема сведений в математической модели объекта М. Таким образом, математическую модель объекта в общем случае можно представить совокупностью математических моделей элементов, системных параметров и групп параметров: К построенной по таким принципам математической модели предъявляются требования: Простота и компактность представления объекта с целью минимизации памяти;. Возможность редактирования дополнение другими элементами, деформирование, выделение сегмента и т. Для фотореалистических изображений некоторые требования не нужны, более существенны другие требования, которые будут рассмотрены позже. Понятие аффинных преобразований и их прикладное значение для задач компьютерной графики. Преобразования на плоскости и в пространстве. В компьютерной графике также выделяются элементарные этапы, из которых составляется графический алгоритм графические преобразования. Греческое слово АФФИНИС означает родственный. Плоскость аффинно отображается на некоторую плоскость. Существует множество аффинных преобразований. Следовательно, прорисовываются элементарные операции компьютерной графики, не нарушающие геометрических свойств отображаемого объекта. Одной из наиболее простых операций преобразования является пересчет координат точки или перенос системы координат. Пусть имеется точка с координатами х,у. Поставим этим координатам в соответствие координаты. Этот случай можно трактовать двояко: А сохраняется точка, изменяется система координат. Обычно принимается вторая трактовка, так как мы работаем в стабильных координатах устройства. В принципе можно строить изображения в любой системе-координат: В машинной графике часто используется матричное представление. Тогда преобразования точек сводятся к операциям над матрицами, что хорошо соответствует возможностям вычислительной техники. Матрица Т - фактически коэффициентов. Её можно трактовать и как оператор. Интерпретация матричного умножения как геометрического оператора является основой математических преобразований в машинной графике. В аффинных преобразованиях особую роль играют несколько частных случаев, комбинация которых позволяет описать любое преобразование одной точки в другую в соответствии с формулами 1. Последовательность выполнения этих преобразований - алгоритмы машинной графики. Начнем рассмотрение элементарных операций с плоскостных. Можно выделить 4 таких операции: Другое название операции - изменение масштаба. Как частный случай изменения масштаба можно рассматривать сдвиг вдоль одной из координатных осей. Эти операции перекрываются с ниже рассмотренными операциями зеркального отражения относительно координатных осей. Элементарные аффинные преобразования на плоскости, составляющие базис операций машинной графики. Выше было рассмотрено преобразование точек. Пусть имеется прямая с координатами концов, заданными векторами А[0,1] и В[2,3]. Возьмем произвольно матрицу преобразования T. Эта матрица осуществляет растяжение или сдвиг. Выполним операцию умножения для точек А и В. Точки результирующей линии взаимно однозначны точкам исходной линии аффинные преобразования. Как следствие, в результате действия такой матрицы параллелограмм преобразуется в другой параллелограмм. При преобразовании пересекающихся прямых точка пересечения исходной пары линий преобразуется в точку пересечения результирующей пары. Таким образом, матричное умножение можно использовать для графических построений. Например, можно равномерно или неравномерно менять масштаб фигуры. Если на вершины треугольника воздействует матрица 2 0 0 2 - , координаты увеличиваются в 2 раза. E сли члены матрицы не равны, фигура искажается. Применение общего матричного преобразования к единичному квадрату с одним углом в начале координат порождает параллелограмм. Понятие и прикладное значение однородных координат. Таким образом, начало координат инвариантно относительно общего преобразования 2х2. Пусть М - произвольная точка плоскости с координатами х,у , вычисленными относительно заданной координатной системы. Фактически, однородные, координаты дают смещение плоскости, на которой рассматривается фигура, относительно начала координат или, в другой интерпретации, смещение начала координат. Это, по существу, переход к 3-мерному представлению плоских объектов, частный случай пространственного представления. Введем в 2-мерное представление 3 компонент, равный единице. Тогда вектора будут иметь вид: Матрица преобразования примет вид: Требуется найти матрицу преобразования. Матрица Т - фактически матрица коэффициентов можно трактовать и как оператор. Чтобы получить квадратную обращаемую матрицу преобразования, дополним ее mn 1. Третья единичная компонента векторов точек не меняется при добавлении элементов. Полученные результаты можно трактовать как поднятие плоскости, в которой мы работаем, на 1 по оси z. В более общем случае координаты точки можно представить как hx , hy , h , h! Следовательно, поднимаем плоскость на h. Другой случай - координаты , что создает угрозу арифметического переполнения. Матрицы третьего порядка позволяют описать любое аффинное преобразование на плоскости. Обычно задачу разбивают на этапы и пользуется 4 элементарными операциями. Матрицы 3 порядка для этих случаев. Как использовать эти преобразования? Сначала разбивают действие на элементарные преобразования из 4 приведенных выше, получают матрицы. Потом перемножают эти матрицы в порядке получения. Результирующая матрица является матрицей преобразования. Для пространства однородные координаты выглядят как: Аналогично плоскости любое аффинное преобразование в пространстве представимо как суперпозиции вращений, отражений, растяжений и переносов. Определитель детерминант любой матрицы вращения равен 1. Основные виды проекций и соответствующие им аффинные преобразования. Геометрическая операция проектирования проецирования выполняет отображение объектов на картинной плоскости. При этом через каждую точку объекта проводятся прямые, начинающиеся в некотором центре. Точки пересечения этих прямых с плоскостью изображения образуют проекцию. Различают проектирование параллельное и центральное. При параллельном проектировании точка центра пучка находится в бесконечности. Каждый из двух основных классов разбивается на несколько подклассов в зависимости от взаимного расположения картинной плоскости и координатных осей. При ортографической проекции картинная плоскость совпадает с одной из координатных плоскостей или параллельна ей. Матрица проектирования вдоль оси х. Если плоскость проектирования параллельна координатной плоскости, матрица [Р x ] умножается на матрицу сдвига. При аксонометрической проекции проектирующие прямые перпендикулярны плоскости отображения. Предмет вместе со связанной с ним системой координат проектируется на некоторую плоскость. Косоугольные проекции используют пучок прямых, не перпендикулярных плоскости отображения. Все это также представимо в матричном виде. Так, при проектировании на плоскость ху точки с. Перспективные центральные проекции более сложны. Вводятся параметры, описывающие центр проектирования, то есть точку, откуда "смотрят" на объект. Пусть эта точка имеет координаты 0 0 с. Тогда матрица перспективного преобразования в пространстве имеет вид: В общем случае при нахождении центра проектирования на осях z или у или х матрицы преобразования будут иметь соответственно вид: Это матрицы одноточечных преобразований. Для произвольного центра проектирования с координатами а, Ь, с матрица преобразования: Этим объясняется высокая ресурсоемкость подобных задач. Как все это реализовать запрограммировать? Здесь удобно использовать объектно-ориентированный подход. Фактически, мы работаем с векторами, так как координаты точки - 3 числа. Для класса ВЕКТОР vector можно определить систему операций например, поэлементное сложение и вычитание векторов и т. Аналогично вводится класс МАТРИЦА matrix. В машинной графике часто применяют приближенное изображение фигур. Плавные линии и гладкие поверхности подвергаются кусочно-линейной аппроксимации. Один из способов приближенного представления плоских и пространственных изображений - геометрические сплайны. Это отдельное направление компьютерной графики. Рассмотрим его обзорно, на уровне общих понятий. Термин "сплайн" происходит от английского spline. Так называлась гибкая полоска стали, с помощь которой чертежники через заданные точки проводили плавные кривые. Используя теорию упругости, можно доказать, что результирующая кривая приближенно является кусочным кубическим многочленом. Он непрерывен и имеет непрерывные первую и вторую производные. Следовательно, кривая имеет постоянную кривизну и разрывы возникают лишь в третьей производной, что для человеческого глаза практически незаметно. Результирующая кривая или поверхность выглядит гладкой. Если вдоль сплайна совершается механическое движение непрерывность второй производной обеспечивает непрерывность ускорения и, следовательно, отсутствие резки изменений приложенной силы. Это очень важно при механической обработке. Поэтому сплайны используют например, при проектировании траектории движения режущего инструмента. Первая работа по теоретическому исследованию сплайнов вышла в г. Сначала сплайны рассматривались как удобный инструмент приближения функций Однако быстро обнаружилось множество сплайнов различных типов. Они стали использоваться в численных методах, системах автоматизированного проектирования САПР , автоматизированных системах технологической подготовки производства АСТПП и т. Сплайны позволяют заменить аналитическое описание кривых и поверхностей их построением по точкам. Используют сплайны и для сглаживания. Тогда линию или поверхность проводят вблизи выбранных точек. Возникает задача поиска требуемой сплайн-функции. Для кривых на плоскости это задача нахождения сплайн-функции одной переменной. Здесь возможны две крайности: Кривую можно провести непосредственно через исходные точки. Тогда получаем интерполяцию с помощью ломаной. Такое изменение весьма влияет и на вид кривой. Как это соотносится с происхождением названия "сплайны"? Если гибкую стальную линейку поставить на ребро, закрепить в крайней точке последовательности и разместить так, чтобы она проходи ла через остальные точки, получим некоторую функцию, описываюшую профиль этой линейки. Эта функция обладает свойствами: Пол e ченная функция называется интерполяционным кубическим сплайном. На всем отрезке задания x 0, xm функция S x имеет непрерывную вторую производную. Эти коэффициенты ищутся, исходя из условия 3, то есть непрерывности сплайна во всех внутренних узлах, а также непрерывности первой и второй производной. Условия непрерывности накладывают ограничения на коэффициенты. Недостающие граничные условия можно получить, задав, например, значения первых производных на концах интервала x 0и xm. Могут быть и граничные условия других типов. Для изображений в пространстве нужно построить поверхность, проходящую через данные точки пространства. Используется функция 2 переменных, то есть интерполяционный бикубический сплайн. Как и для одномерного случая, для получения коэффициентов строится система линейных уравнений. Достоинство сплайнов - относительная простота. Методы решения систем линейных уравнений хорошо известны. Если точки задаются приближенно, нет необходимости жесткого прохождения функции через каждую точку, можно использовать методы сглаживания. Это ведет к тому, что ослабляется требование однозначного проектирована искомой кривой на координатную ось или поверхности на координатную плоскость. Таким образом, кривая может быть замкнутой, самоперссекающейся и т. Пусть в пространстве или на плоскости задан упорядоченный набор точек, определяемый векторами V 0- V 1-…- Vm. В качестве одной из таких кривых может выступать кривая Безье. Каждый член полинома соответствует одной из точек интервала. Точки могут рассматриваться в любом порядке, а не только по возрастанию одной из координат. Пример - для 4 точек кубическая кривая Безье: На практике применяют построение кривой по фрагментам, выбирая, как правило, по 4 точки , т. Чтобы фрагменты хорошо сопрягались, на исходные точки накладывается ряд условий. Например, необходимо, чтобы каждые 3 соседние точки лежали на одной прямой. Как улучшить результаты, получаемые с помощью кривых Безье? В уравнении, задающем кривую Безье, векторные составляющие координаты точек опорного массива постоянны, пока мы их не захотели изменить. Следовательно, улучшение возможно за счет коэффициентов многочлена изменяем способ их подсчета. Класс сплайновых кривых гораздо шире кривых Безье. Кривые Безье относятся к классу полиномов Бернштейна строятся в базисе Бернштейна. Существует другой базис, называемый В-сплайн базисом от base - базовый , для которого базис Бернштейна является частным случаем. Здесь принят иной способ вычисление коэффициентов. Причем эти коэффициенты не зависят от координат конкретных точек четверки. Поэтому изменение одной вершины исходного массива не влечет полный пересчет всех коэффициентов. Здесь также ограничиваются обычно кубическими многочленами, то есть используют кубические В-сплайны. Для этого в уравнение кривой вводятся параметры. Таким образом получаются обобщение кубических В-сплайнов, называемые рациональными кубическими В-сплайнами и бета-сплайнами. Сумма этих чисел положительна то есть по крайней мере одно из чисел ненулевое. Эти параметры называются параметрами формы бета-сплайновой кривой: Для поверхностей добавляется еще одна координата. Это требует специальных алгоритмов аппроксимации изображений. Растр можно представить решеткой, состоящей из единичных квадратов. Когда инициализируется точка с координатами p , q , вся ее квадратная окрестность закрашивается каким-либо цветом. Пусть есть 2 пиксела с координатами Pl xl , yl и Р2 х2, у2. Методы получения растрового приближения геометрических фигур различны, так как одну фигуру. Можно строить 4-и 8-связное представление. Возможны и другие растровые модели. Все зависит от того, какими свойствами требуется наделить полученный образ. Очевидное решение - инициировать последовательно все точки растра, квадратные окрестности которых пересекают данный отрезок. Результатом является 4-связная растровая развертка отрезка. Пусть отрезок имеет координаты концов M xl , yl и М2 x 2,у2. Брезенхейм Bresenham предложил простой целочисленный алгоритм растрового построения отрезка. Сначала он использовался в графопостроителях. Алгоритм основан на том, что при построении всегда берется ближайший по вертикали пиксел, то есть точка, ближайшая к исходной прямой. Определение принадлежности точки многоугольнику. Многоугольник плоская фигура, ограниченная не самопересекающейся замкнутой ломаной линией. Пусть эта ломаная задается набором вершин. Задача состоит в различении внутренних и внешних точек мной многоугольника. Выпустим из тестируемой точки произвольный и найдем количество его пересечений с границей прямоугольника. Прохождение луча через некоторую вершину не рассматривается, так как его можно обойти. Но обход вершин связан с определенными трудностями, требуется много проверок. Проверка пересечения с произвольным лучом также неудобна. Поэтому лучше принять соглашение о направлении пересекающего луча. Это позволило также исключить из рассмотрения все горизонтальные отрезки многоугольника. Пересечение не засчитывается, если вершина является верхней для отрезка и засчитывается в любом другом случае. Следовательно, для точек максимума пересечение игнорируется, для точек минимума считается дважды. Для прочих вершин засчитывается единичное пересечение. Зная аналитическое уравнение прямой и вышеизложенный алгоритм, можно написать программу. Алгоритмы заполнения закраски замкнутой области. Заполнение внутренности сплошной области занимает важное место в растровой графике. Большенство задач о заполнении двумерной фигуры относится к одному из двух типов: Некоторые алгоритмы заполнения областей. Задачи заполнения некоторой замкнутой области также называются задачами закраски. Требуется заполнить внутреннюю часть области пикселями определенного цвета. Рассмотрим 2 класса таких задач: Для заполнения многоугольника пригоден алгоритм проверки принадлежности точки многоугольнику Но он не эффективен, так как требует перебора всех точек растра. Область перебора можно сократить, вписав многоугольник в прямоугольник со сторонами, параллельными осям, и рассматривая только точки этой области. Можно сделать другое улучшение. Теперь вместо одной точки можно закрасить сразу групп точек, лежащую на некоторой горизонтали внутри многоугольника. Данная схема заполнения называется заполнением в порядке сканирования строк. Алгоритм относится к типу алгоритмов построчного сканирования. Скорость работы алгоритма можно повысить, если проверять на пересечение со сканирующей прямо не все ребра, а только те, ординаты концов которых лежат по разные стороны этой прямой рис. Используется массив координат концов отрезков, образующих многоугольник, который, как правило, всегда есть. Для выпуклых многоугольников алгоритм ещё проще, так как есть всего 2 точки пересечения на каждой растровой прямой рис. Генерируя с помощью алгоритма Брезенхема растровое представление 2 противолежащих ребер для одной и той же ординаты, получаем пикселы, лежащие на границах интервала заполнения. Задача заполнения области с затравкой формулируется следующим образом. Предполагается, что граница области задана на растровой плоскости набором символов определенного цвета и указаны координаты од ной из внутренних точек этой области. Такая точка называется затравочной. Простейший алгоритм выполняет перебор всех точек и анализ их окрестностей. Возможен анализ в рамках 4- и 8-связности. Для хранения координат точек используется стек. Сначала туда заносятся координаты затравочной точки. Извлечем из стека очередную точку, закрасим ее и исследуем ее 4- или 8-вязную окрестность. Если исследуемая точка не лежит на границе фигуры и уже не закрашена, поместим ее в стек. Алгоритм заполняет области любой формы. Но он неэффективен, так как один пиксел обрабатывается многократно, стек может неконтролируемо расти. Более эффективный алгоритм основан на построчном заполнении, что позволяет обрабатывать группу пикселов. Каждую строку можно разделить на интервалы, принадлежащие или не принадлежащие закрашивав мой области. Разделитель - граница области. Если набор пикселов образует связный интервал, принадлежащий внутренней части области, то пикселы над и под этим интервалом либо являются граничными, либо принадлежат внутренней части области. Эти внутренние символы могут служить затравочными для ниже- и вышележащих строк. Целесообразно проверять на возможность использования как затравочных пикселы, лежащие под или над одной из границ найденного интервала. Задачу отсечения иногда называют задачей клиппирования от английского clip -отрезать, отсекать. Она возникает довольно часто. Требуется знать пикселы, лежащие за пределами окна и не работать с ними. Но это долго, так как сравнение должно быть встроено в цикл в алгоритме Брезенхейма. К тому же границы должны или где-то храниться в виде набора адресов пикселов, или вычисляться путем 4-х кратного для каждой стороны прямо угольника решения уравнения прямой для каждой точки. Придется также учитывать специальные случаи горизонтальной и вертикальной прямой, а также вырождение прямой в точку. Алгоритм Сазерленда-Кохена широко известен благодаря простоте и эффективности. Плоскость делится на 9 областей. В каждой из областей точки по отношению к прямоугольнику расположены одинаково. Определив, в какие области попали концы отрезка, легко определить, где нужно отсечение. Для этого каждой облас ти сопоставляется 4-битовый код, имеющий следующий смысл: Соотношение конечных точек и прямоугольника вычисляется с помощью поразрядных логических операции: Они выполняются очень быстро, так как в процессорах 80х86 есть машинные команды AND и OR. Рассматриваем эллипс, так как это более общий случай, из него получается окружность. Если в эллипсе ориентированном вдоль осей координат, задать одинаковые горизонтальную и вертикальную координаты, окружность не получится, останется эллипс, так как в большинстве графических режимов вертикальный и горизонтальный масштабы различны. Точка растра имеет квадратную форму только в видеоадаптерах VGA. Для получения окружности надо рассчитать число пикселов по осям. В библиотеке BGI масштабирование уже проведено. При рисовании эллипса с одинаковыми размерами осей или окружности искажения формы нет. Для каждого графического драйвера и графического режима в BGI имеется коэффициент сжатия. Как и для прямой, координаты многих пикселов будут иметь аппроксимированное значение, фигура будет "изломанной". Решение "в лоб" - использовать алгебраическое уравнение. Пусть эллипс имеет координаты центра X с, Y с. Построение эллипса через уравнение, как и для прямой, нерационально по времени, так как вычисления по формуле громоздки, содержат долго выполняющиеся операции умножения, деления, вызов функции извлечения квадратного корня. Итерационный алгоритм для эллипса аналогичен алгоритму Брезенхема для прямой. Изображение формируется попиксельно, очередной пиксел выбирается по критерию близости к истинному значению. Далее - симметричное инвертирование координат. Если эллипс не симметричен относительно осей координат, можно привести его к симметричной координатной системе поворотом осей координат. Уравнение простейшего эллипса с центром в начале координат и полуосями b по оси у и а по оси х: Используется так называемый "алгоритм средней точки". Он выбирает, какой из соседних пикселов ближе к эллипсу, вычисляя, находится ли средняя между пикселями точка вне или внутри эллипса. Подставим координаты средней точки p , q в уравнение эллипса: Средняя точка М лежит внутри эллипса. Средняя точка М лежит вне эллипса, выбирается ближайшая точка В. Выбор зависит от наклона касательной к эллипсу. Очередной пиксел выбирается итеративно по отношению к предыдущему пикселу. Сравнивая d для двух соседних точек, можно вывести итерационные формулы для d. В итерационном цикле изменяемая координата имеет приращение 1, поэтому вместо умножения на квадрат можно использовать сложение с вычисление вне цикла константой квадратом. Так сложные операции умножения, деления, вычисления квадратного корн заменяются простыми операциями сложения и вычитания. Обычно алгоритм начинается в точке 0, b и заканчивается в точке а,0. Движение идет по часовой стрелке. Следовательно, выбор осуществляется между пикселями по вертикали. Затем пикселы выбираются по горизонтали до достижения оси x. Инкремент для d можно вычислить: Каждая из полученных точек сразу отображается в остальных трех квадрантах. В изображении эллипса имеются некоторые проблемы. Когда эллипс мал и для его изображения требуется сравнительно мало пикселов, аппроксимация выглядит как многоугольник вместо плавной кривой - ломаная. Выход состоит в переходе к более высокому разрешению может быть на том же адаптере путем сокращения количества цветов. В программе перед циклом нужна проверка на вырождение. Все алгоритмические поиски направлены на ускорение работы. Но зачастую весьма эффективны не сложные математические выкладки, а эвристические соображения. Пусть сцена разбита на фрагменты А и В. Если самые дальние точки фрагмента А лежат ближе к наблюдателю, чем самые ближние точки фрагмента В, то никакая часть фрагмента В не может загораживать фрагмент А. Поэтому сначала строится изображение фрагмента В дальнего , а потом - фрагмента А ближнего. Данное эвристическое соображение устанавливает порядок обработки фрагментов изображения. Очевидно, что при этом фрагмент В не может загораживать фрагмент А, то есть он должен выводиться первым. Если непересекающиеся фрагменты выпуклы, то разделяющая плоскость обязательно имеется. Если фрагменты А и В невыпуклые, можно попытаться поместить их в непересекающиеся выпуклые тела например, шары возможно меньших диаметров. Кроме порядка обработки фрагментов полезно знать, когда фрагменты могут обрабатываться независимо друг от друга. Даже при отсутствии возможности параллельных вычислений решение задачи загораживали упрощается, так как не требуются проверки на невидимость. Обработка фрагментов может проводиться независимо, если их проекции на картинную плоскость не пересекаются. Общая задача о пересечении проекции произвольных объектов сложна. Но есть простые частные условия не пересечения. Если вписать проекции прямоугольники со сторонами, параллельными осям координат, можно проверку не пересечения проекции заменить проверкой не пересечения прямоугольников. При этом требуется решение нескольких неравенств. Если прямоугольники не пересекаются, то вписанные в них фигуры тем более не пересекаются. Можно придумать и другие способы установления порядка рассмотрения объектов или установления независимости. Целесообразно также сложные сцены разбивать на ряд простых и рекурсивно решать серии простых задач. Вместо сцены можно разбивать картинную плоскость и обрабатывать независимо части изображения, попадающие в соответствующие части плоскости. Способ разбиения зависит от конкретной задачи. Для невыпуклых поверхностей имеются полностью или частично видимые или невидимые грани. Если элемент видим частично, его проекция на картинную плоскость обязательно пересекается с проекцией другого ребра многогранника, через которое проходит складка проектирования. Это же - для гладких поверхностей. Общее представление алгоритма удаления невидимых поверхностей. Алгоритм удаления невидимых поверхностей можно определить следующим образом: Рассмотрим смысл функций, входящих в множество f. Каждая функция перехода может иметь несколько вариантов реализации, применяемых в различных алгоритмах удаления. РМ - функция преобразования проецирования. Она строит проекции чаще перспективные , то есть преобразует трехмерное пространство в двумерное. IS - функция вычисления точки пересечения двух графических элементов при условии, что эти элементы пересекаются только в одной точке. Цель вычисления точек пересечения может быть различной: Найти точку отрезка прямой, в которой происходит изменение видимости;. Определить, имеется ли непустое пересечение проекций 2 многоугольников на картинную плоскость см. Найти точки пересечения объектов со сканирующей прямой см. Использовать результат в тесте принадлежности см. Найти точку пересечения граней объекта и прямой, соединяющей точку наблюдения со специальной тесто вой точкой в объектном пространстве. Пересекающиеся прямые описываются системой линейных уравнений: Иначе точка пересечения имеет координаты. Известные математические выкладки позволяют также в аналитической форме получить формулы для пересечения двух отрезков и пересечения плоскости и прямой. Для выпуклых многоугольников дело обстоит сложнее. С помощью анализа минимаксного выражения можно установить, перекрываются многоугольник или нет. Точки пересечения определяются с помощью ряда шагов, среди которых - тест пересечения. СТ - функция, выполняющая в двумерном пространстве "тест принадлежности", то есть проверяющая, лежит ли некоторая точка внутри многоугольника. Результат - булева переменная ИСТИНА или ЛОЖЬ. Проверку на принадлежность методом подсчета числа пересечений рассматривали ранее. Есть еще один тест, известный из элементарной геометрии. Соединим прямыми исследуемую точку с каждой из вершин многоугольника. Каждая пара соседних прямых образует угол. Одна или обе сравниваемые точки могут принадлежать некоторой грани. Следовательно, сравниваются точка - точка, точка - грань, грань - грань. Под глубиной понимается расстояние между элементом и картинной плоскостью или между элементом и точкой наблюдения. Имеются 3 теста глубины: Тесты глубины, используемые при удалении невидимых поверхностей. Тест DT1 применяется для объектного пространства. Он сопоставляет грань и точку и определяет, заслоняет ли грань точку Для этого ищется точка пересечения грани с так называемой "линией визирования", т. Если пересечения нет, проверяемая точка видима. Тест DT2 предназначен для параллельной проекции и оперирует элементами как в объектном пространстве так и в картинной плоскости. Проверяются либо 2 грани, либо точка и грань. Для двух граней берется некоторая точка плоскости, которая является общей для проекций на эту плоскость обеих граней. Затем находятся точки на гранях, которые проецируются в выбранную точку. Точка плоскости выбирается так. Поэтому тест DT2 называют также приоритетным тестом. В тесте точка - поверхность пропускается шаг определения общей точки. Координаты тестируемой точки сразу подставляются в уравнение плоскости, найденная z -координата грани сравнивается с z-координатой точки, в результате решается вопрос о приоритете поверхности над точкой или наоборот. Для проникающих граней и циклического перекрытия тест "в лоб" не работает. Поэтому грани разбивают штриховая линия на рисунке. Он применяется в растровых алгоритмах при проверке видимости проекции граней на картинную плоскость вдоль сканирующей прямой. На сканирующей прямой выбирают интервалы, где нет пересечения проекций и нет проникающих граней в объектном пространстве. Для этих интервалов просто сравниваются z-координаты сегментов проекций. Видимый сегмент имеет наибольшую а координату и образует полоску растровой прямой. VT - функция, выполняющая "тест видимости" для данной поверхности. Она выдает значение ИСТИНА, если поверхность видима и ЛОЖЬ в противном случае. Применяется только к телам. Определяет, являете ли некоторая грань тела "передней", то есть потенциально видимой, или "задней". Очевидно, что тест может при меняться только к структурированным объектам в объектном пространстве. К гладким поверхностям тест не применим. Если имеется несколько объектов, то тест видимости не решает вопросы загораживания. Он выявляет только заведомо невидимые элементы каждого тела. Они не участвуют в последующих вычислениях. При выполнении теста видимости сначала определяется нормаль к грани - направленный от тела век тор, перпендикулярный к грани. Уравнение нормали получается из уравнения плоскости, содержащей грань. Видимые грани иногда называют лицевыми, невидимые - нелицевыми. Используется формулировка "потенциально видима", так как для невыпуклых тел или для нескольких те. Процедура определения невидимости занимает немного времени, так как если найдена одна грань, затеняющая другую, то незатененную грань можно не проверять справедливо для выпуклых тел, для невыпуклых тел тест не работает Это позволяет сократить количество граней, участвующих в проверке на загораживание, те. Функция стратегии st определяет порядок применения функций из множества f для получения требуемого результата. Возможны 2 подхода к решению задачи и соответственно 2 типа алгоритмов: Объектный подход рассматривает видимость в объектном пространстве. При этом сначала выполняете. Временные характеристики таких алгоритмов обычно обладают квадратичной зависимостью от числа объектов сцены. Картинный подход рассматривает видимость ] пространстве отображения. Определяется видимость каждого элемента картинной плоскости то есть каждого пик села. При этом сначала выполняется преобразование проецирования, потом - тест видимости. Временные характеристики таких алгоритмов оцениваются как линейные функции от произведения числа объектов на число точек растра. Существуют и смешанные алгоритмы, использующие как первый, так и второй подход. Основные алгоритмы удаления невидимых линий и поверхностей, их краткая характеристика и сравнительный анализ. Задачу удаления невидимых линий и поверхностей называют также задачей загораживания. Она возникает при построении реалистических трехмерных изображений и является весьма сложной. В общем виде эта задача эффективно не решается. Наиболее критический ресурс - время. Существует множество алгоритмов удаления невидимых линий и поверхностей. В основном алгоритмы рассматривают многогранники, так как для изображения гладких поверхностей чаще используются полутоновые изображения и решаются задачи закраски следующая тема. С простейшими поверхностями в том числе гладкими можно работать с помощью аналитических представлении, Боле e сложные объекты представляют в полиэдральной форме, то есть как совокупность многоугольников. К многоугольникам сводят и гладкие поверхности аппроксимация, сплайны. Используют также каркасное представление, так как ребра многогранников образуют каркасные линии. Наиболее простыми и часто используемыми фигурами являются выпуклые многогранники. Их грани представляют собой выпуклые многоугольники. Для выпуклых многоугольников любая грань либо полностью видима, либо полностью невидима. Алгоритм Робертса, алгоритм Z-буфера, метод построчного сканирования: Он требует, чтобы грани были выпуклыми многоугольниками. Каждое оставшееся ребро каждого объекта анализируется на взаимоположение со всеми гранями каждого объекта. Первый случай наблюдается в 2 вариантах: Во втором случае ребро полностью расположено в полупространстве, не содержащем наблюдателя. Проекция ребра полностью лежит внутри проекции грани. Если ребро полностью закрыто, оно исключается из дальнейшего рассмотрения. Для частично закрытых ребер производится разбиение, получаем видимых подребра, которые включаются в список для дальнейшего рассмотрения. В третьем случае ребро пересекается с плоскостью, содержащей грань - рис. Аналогично второму случаю ребро разбивается на части, из которых видимы не более 2, далее рассматриваем только видимые под ребра. Разбиение делается на 2 части по точке пересечения, рассматриваем отдельно обе части, то есть сводим к предыдущим случаям. Если плоскость, несущая грань, и ребро пересекаются, ребро разбивается на две части по точке пересечения, каждая часть ребра рассматривается отдельно. Временные затраты алгоритма пропорциональны квадрату числа граней всех объектов. Метод весьма прост, что делает его удобным для аппаратной реализации. Время работы не зависит с числа граней, но линейно зависит от количества точек растра и "глубины сцены", то есть от числа граней, взаимно закрывающих друг друга. Как правило, метод используется для ортогональных проекций. Его реализация осуществляется с помощью 2 буферов: Буфер глубины хранит z координаты пикселов экрана отражено в названии метода. Буфер кадра хранит информацию о состоянии пикселов экрана интенсивность, цвет. Буфер кадра - атрибутами фона. В ходе работы проекция очередной грани объекта разлагается в растр для каждого пиксела выполняется сравнение его глубины с глубиной, ранее занесенной для этого пиксела в Z буфер. Если для нового пиксела z-координата меньше значения буфера, то он ближе к наблюдателю и, следовательно, видим. Его характеристики заносятся в буфер кадра и Z-буфер. Алгоритм легко модифицируется для получения сечений поверхности параллельными плоскостями. Для этого на экран выводятся только проекции точек с z-координатой в требуемом интервале. Метод работает в картинной плоскости. Сцена в пространстве пересекается семейством плоскостей, проходящих через линии горизонтальной развертки растра и точку наблюдения центр проектирования. Рассмотренный прием используется в играх DOOM и Wolfenstein 3d. Подсчет количественной невидимости с помощью алгоритма Аппеля. Метод работает с многогранниками Он основан на подсчете количественной невидимости - числа точек , закрывающих данную точку поверхности. Число закрывающих точек равно числу закрывающих лицевые граней. Точка видима, если ее количественная невидимость равна 0. Как изменяется количественная невидимость вдоль ребра? Естественно, рассматриваются только потенциально видимые ребра. На рисунке контурной является ломаная ABCUDEKLGA. В такой точке невидимость увеличивается на 1, если ребро уходит за контурное ребро и уменьшается на 1, если ребро выходит из-за контурного. Таким образом ребро разбивается на отрезки с различными значениями количественной невидимости. При этом различие между соседними отрезками равно 1. Для этого через эту точку и точку наблюдения проводится отрезок прямой и находятся пересечения этого отрезка со всеми гранями как в тесте глубины DT 1. Число найденных граней - количественная невидимость начальной точки. Далее прослеживается изменение количественной невидимости вдоль каждого из ребер, выходящих из этой вершины Эти ребра проверяются на прохождение позади контурной линии, что изменяет количественную невидимость. Части отрезка с нулевой количественной невидимостью сразу рисуются Далее выбирается вершина, образуемая одним из рассмотренных ребер. Для нее количественная невидимость подсчитана, процесс повторяется. Как определить пересечение рассматриваемого ребра с контурным? По сравнению с алгоритмом Робертса алгоритм Аппеля более быстр, так как число ребер, входящих в контурную линию, намного меньше общего числа ребер. Подсчет количественной невидимости можно применять и для гладких поверхностей. Складка изменяет невидимость на 2. Идея состоит в попытке упорядочить элементы сцены по некоторому признаку. Тест глубины рассматривался ранее. Вывод проекций граней на картинную плоскость выполняется, начиная с самых дальних от точки наблюдения граней в порядке приближения к точке наблюдения. Возможны случаи, когда сортировка по расстоянию до картинной плоскости не обеспечивает правильного упорядочения граней из-за пересечения объектов. Перед выводом грани Р следует убедиться, что никакая другая грань Q , проекция которой пересекается с проекцией грани Р, не закрывается гранью Р. Тогда грань Р выводится раньше Q. Требуются дополнительные проверки для установления порядка вывода граней. Рассмотрим эти проверки для наиболее простого случая параллельного проектирования вдоль оси Z. Тесты в порядке возрастания сложности проверки: Накладываются ли друг на друга отрезки при проектировании проекций граней в плоскости XY на ось X. Накладываются ли друг на друга отрезки при проектировании проекций граней в плоскости XY на ось Y. Находится ли грань Р по отношению к плоскости, проходящей через грань Q , по другую сторону, чем наблюдатель. Находится ли грань Q по отношению к плоскости, проходящей через грань Р, по ту же сторону, что наблюдатель. Пересекаются ли проекции граней Р и Q на картинную плоскость. Если хотя бы на один из вопросов получен отрицательный ответ, считается, что грани Р и Q упорядочены верно, грань Р сравнивается со следующей гранью. В противном случае проверяется возможность поменять грани местами. Для этого выполняются следующие тесты: Находятся ли грань Q и наблюдатель по разные стороны плоскости, проходящей через грань Р. Находится ли грань Р и наблюдатель по одну сторону плоскости, проходящей через грань Q. Если ни один из тестов не позволяет уверенно определить порядок вывода граней, одна из них разбивается плоскостью, проходящей через другую грань, процесс повторяется для полученной совокупности граней. Объекты пространства описываются функцией 2 переменных. Наиболее часто используется кусочно-линейная аппроксимация, когда поверхность составляется из каких-либо плоских фигур. Имеются некоторые каноны аппроксимации, позволяющие получать наиболее рациональные результаты. Так кривая апроксимируется отрезками прямой, плоская фигура сложной формы - прямоугольниками или квадратами. Гладкие поверхности - непересекающимися треугольниками. Процесс триангуляции состоит в создании сети непересекающихся треугольников с вершинами в заданных точках. По сравнению с прямоугольной сеткой триангуляция имеет преимущества: Отсутствует единый масштаб для всех данных, когда размер ячейки прямоугольной сетки автоматически устанавливает предел подробности карты, и сгущения точек отображаются только в пределах размера решетки. Размер треугольника при триангуляции не устанавливается. Там, где исходные точки разрежен поверхность приближается к плоской , треугольники крупнее, при сгущении точек большой кривизне поверхности треугольники мельче Количество треугольников определяется количеством исходных точек аппроксимации. Эйлер доказал теорему, что оно не превышает удвоенного количества исходных точек;. Для адекватного отображения поверхностей с высокой степенью кривизны приходится значительно измельчать сетку, что ведет к большим затратам вычислительных ресурсов. В настоящее время в большинстве приложений используется триангуляция Делоне. Она строится однзначно и соединяет исходные точки в сеть наиболее правильных треугольников. Это удобнее в расчетах. Пример использования триангуляции - построение линий уровня топографические карты, изотермы т. Плоскость проектирования - область определения задания функции 2 переменных. Пусть это плоскость XY. Она разбивается на прямоугольные ячейки. Каждая ячейка сетки делится на 2 треугольника. В результате получаем стандартную триангуляцию области задания функции. Проведя действия, обратные параллельному проектированию вдоль оси Z , находим на поверхности точки аппроксимации. Дале решается задача пересечения треугольников, составляющих поверхность, с плоскостями, параллельными плоскости XY горизонтального сечения. Перечисление случаев показывает, как важен просчет всех вариантов. В машинной графике это не проходит, получается плохое изображение. Закраска методами Гуро и Фонга. Пусть проекция некоторой грани на экран является выпуклым 4-угольником Пусть интенсивности вершин определены и равны I1, I 2, I 3, I 4. Пусть W - произвольная точка грани. Проведем через нее горизонталь. Пусть Р и Q - точки пересечения горизонтали с границами проекции грани. Для определения интенсивности в точках Р и Q снова применяется линейная интерполяция отсюда термин билинейная. Считаем, что вдоль каждого из ребер границы интенсивность меняется линейно. Интенсивность последующего пиксела отрезка отличается от интенсивности предыдущего на величину, постоянную для данного отрезка. При переходе от отрезка к отрезку интенсивности на концах также меняются линейно. Тем не менее, метод не обеспечивает достаточно гладкое изменение интенсивности. Аналогично методу Гуро используется интерполяция. Но интерполируется не освещенность по известным значениям опорных точек, а вектор внешней нормали, который используется для расчета интенсивно c ти пиксела. Поэтому метод требует большего объема вычислений. Но изображение получается более естественным. Для каждой точки строится вектор, играющий роль внешней нормали. Схема интерполяции аналогична методу Гуро. Для определения псевдонормали в некоторой точке точке V через эту точку проводится горизонтальная прямая. Она пересекается с ребрами в точках Р и Q. Пусть вектор псевдонормалей в этих точках соответственно Np и Nq. Нормирование вектора Nw необходимо, так как в формулы входит единичный вектор нормали. Векторы внешних нормалей псеводнормалей в точках Р и Q находятся также линейной интерполяцией , но по векторам нормалей концов соответствующих ребер. На многогранной модели строится условно непрерывное с учетом шага дискретизации поле единичных векторов, которое используется как поле внешних нормалей. Это обеспечивает гладкость изображения. Качество определяется компромиссом между величиной дискретизации и вычислительными ресурсами. Методы Гуро и Фонга сравнительно просты. Но они не всегда обеспечивают приемлемое качество. Основы метода трассировки лучей. Это наиболее распространенный метод. Для простоты считаем источник точечным. Попав на некоторый объект, луч преломляется уходит внутрь объекта или отражается рассеивается диффузно - равномерно или зеркально - концентрированным пучком. Рассеянный луч также распространяется прямолинейно до попадания на следующий объект. Каждый луч, попадающий в глаз, проходит через некоторую точку экрана. Следовательно, для каждой точки надо проследить путь распространения света от его источника трассу. Отсюда - название метода. Чтобы использовать только существенные лучи. В компьютерной графике применяется обратная трассировка. Цвет точки экрана определяется долей световой энергии, попадающей в эту точку и покидающей ее в направлении глаза. Таким образом, необходимо найти освещенность точки. Для этого из нее выпускаются лучи в направлении источников света. Эти линии пересекаются с другими объектами сцены и т. Эта энергия складывается из непосредственной первичной освещенности от источника света и вторичной освещенности от других объектов. Очевидно, что доля первичной освещенности существенно выше всех других. Поэтому обычно первичная и вторичная освещенность рассматриваются по-разному. Распространение света описывается уравнениями Максвелла. Произвольный луч света практически не бывает монохромным.. Он состоит, из волн различной длинны. Интенсивность различных волн показывает спектральный анализ. Но поскольку основная цветовая палитра состоит из трех базовых цветов, при исследовании обычно берут только длины волн красного, зеленого и синего цветов. Остальные цвета - их комбинация. При анализе распространения света учитывается его затухание для однородных сред, а также отражение и преломление на границе раздела двух сред. Из физики известны модели формулы для различных условий распространения света. В большинстве случаев они идеализированы модели всегда идеализированы, этом их смысл. Границей раздела двух сред в моделях является плоскость. Для вторичных источников учитывается зеркальное отражение, диффузное отражение и преломление. При зеркальном отражении луч строго направлен. При диффузном отражении падающий свет рассеивается е все стороны с одинаковой интенсивностью. Поэтому однозначно определить направление нельзя, все направления равноправны. Идеальное диффузное отражение описывается законом Ламберта п. При идеальном преломлении луч уходит внутрь тела в виде сосредоточенного пучка. При диффузном преломлении луч распространяется в теле одинаково по всем направлениям. Для всех этих случаев существуют формулы. Поэтому делают различные упрощения. Рассматривают только точечные источники света. При трассировке преломленного луча не учитывают зависимость его направления от длины волны. Для диффузной и зеркальной освещенности вводят веса в зависимости от материала объектов. Сначала подсчитывают первичную освещенность, выпуская лучи из точки ко всем источникам света. Для определения вторичной освещенности выпускают из точки один луч для отраженного света и один - для преломленного диффузное преломление не учитывается. Таким образом сокращается количество отслеживаемых лучей. Неидеальное зеркальное отражение лучей от других объектов не учитывается. В итоге в сложной формуле, учитывается. Для освещенности от каждого из источников имеются коэффициенты, отражающие "вклад" источника: Учитываются также для источников и фонового освещения цвет длина волны , направление первичных источников света, угол отражения для отраженного луча, угол преломления, расстояние, пройденное отраженным лучом, коэффициенты ослабления для отраженного и преломленного луча. В зависимости от требований к реалистичности применяют упрощения при вычислении коэффициентов. Алгоритм трассировки лучей ведет к древовидному разрастанию числа рассматриваемых лучей. В качестве критерия остановки используется отсечение по глубине и по весу. В первом случае вводят ограничение по количеству уровней рекурсии. Во втором случае учитывают уменьшение вклада каждого луча в итоговый цвет пиксела с увеличением расстояния, вводят порог прекращения трассировки. Для учета материала, в котором распространяется луч, вводят коэффициент преломления и коэффициент поглощения среды. Свойства поверхности учитывают весами фоновой, диффузной, зеркальной, отраженной и преломленной освещенности. Объект также описывается своим цветом и материалом. В программе это структуры. Программно задается и положение наблюдателя. Переход от подсчитанной освещенности к цвету выполняется путем выделения квантов освещенности для каждого цвета. Величина кванта определяется цветностью палитрой в 16, или более цветов. Освещенность за границами предельных квантов - белое или черное. Повышение реалистичности изображения требует учета различных видов поверхностей, то есть моделирования текстур. Например, для изображения мрамора с прожилками требуется менять цвет поверхности в зависимости от положения точки на ней. Возможны два основных варианта; проективные и процедурные сплошные - solid текстуры. В первом случае изображение реальной раскрашенной мраморной поверхности проецируется на поверхность объекта, то есть учитывается искажение рисунка для изогнутых или стоящих под углом к наблюдателю поверхностей. В итоге трехмерные координаты точки сводятся к двумерным, которые затем используются для индексации цвета. Этот вариант прост понятийно, так как методы получения проекции известны, но не экономичен по памяти, так как хранятся дополнительные индексы цвета. Во втором случае строится функция, определяющая цвет каждой точки в соответствии с исходным рисунком. Здесь затраты памяти невелики, сложность формы объекта на работу не влияет. Но создать такую функцию сложно, поэтому продают библиотеки текстур аналогично библиотекам шрифтов. Простейшие текстуры моделируют клетчатую поверхность шахматная доска и кирпичную кладку. Кроме цветовых текстур моделируют текстуры с меняющимися коэффициентами вторичной освещенности например, коэффициентом преломления , меняющимся вектором нормали к точке меняющийся рельеф местности - рябь, волны на воде. Для внесения неправильностей используют шумовые текстуры. Пример - моделирование текстуры дерева с учетом того, что годовые кольца не носят строго правильный характер. Способы построения таких функций известны. Шум можно наложить не только на цвет, но и на вектор нормали. Распределенная трассировка лучей, оптимизация трассировки лучей. Изображения в предыдущих примерах имеют погрешности: Это характерно для классической трассировки лучей и связано с тем, что не учитывается размер пиксела. Пиксел считается бесконечно малой точкой, через него проходит только один луч, поэтому его цвет определяется однозначно. На самом деле, с учетом занимаемой пикселом площади, его цвет - сумма по всем лучам, проходящим через его область, то есть интеграл по этой области. В области пиксела выбирается по равномерному закону распределения случайная точка и трассируется луч, проходящий через эту точку. Освещенность, привносимая этим лучом - случайная величина. Способы выбора тестовых точек различны. Наиболее распространен метод "шевеления" регулярной решетки. Рассмотренный метод устраняет погрешность, связанную с неучетом размера пиксела, но вносит свою - высокочастотный шум, который для глаза менее заметен. Распределенная трассировака лучей позволяет моделировать ряд дополнительных эффектов. При неточечных источниках света возможно трассирование нескольких лучей из одной точки объекта в разные СЛУЧАЙНЫЕ точки источника света. Неточечные источники света вместо резких теней дают мягкие полутени. Можно реализовать сферический, цилиндрический ц другой формы источники. Микрофасетная поверхность от франц. Поэтому вместо одного отраженного или преломленного луча можно выпустить несколько СЛУЧАЙНЫХ лучей и определить приносимую ими энергию с учетом их весовых коэффициентов, зависящих от направления для учета направления рисунка поверхности. Вместо равномерного распределения лучей можно использовать их веса для выбора предпочтительного направления. Распределенная трассировка лучей позволяет также моделировать неидеальную камеру. До сих пор наблюдатель камера трактовался как точки. В реальной камере точка освещается бесконечным множеством лучей, проходящих через линзу. Для учета этого используются известные законы оптики. Метод трассировки лучей требует большого объема вычислений. Причем основная работа заключается в проверке пересечения луча с объектами сцены. Требуется сократить количество объектов, для которых проверяется пересечение с лучом. Особенно долго ищется пересечение с объектами сложной формы. Объект можно поместить внутрь простой фигуры например, сферы. Если луч не пересекает эту фигуру, то он не пересекает и обьект, который исследовать не надо. Пересечение со сферой определить просто, можно использовать, например, аналитический метод уравнение. Вспомогательную фигуру пересечет небольшая часть рассматриваемых лучей. Здесь очевиден выигрыш за счет уменьшения количества лучей. Можно описать фигуру вокруг нескольких объектов. При пересечении - аналогичное разбиение группы на подгруппы и т. Начальная простая фигура содержит всю сцену аналог дихотомии. Ограничивающие фигуры построить не всегда легко. В блоке объекты сортируются в порядке удаления от начала луча в блоке аналогично оптимизации путем разбиения картинной плоскости при удалении невидимых линий и поверхностей. Достоинство этого метода оптимизации - простота, следующий блок можно выбирать при помощи алгоритма Брезенхема блок вдоль луча. Метод излучательности устраняет этот недостаток. В основе метода лежит закон сохранения энергии в замкнутой системе. Все объекты разбиваются на фрагменты, для этих фрагментов составляются уравнения баланса энергии. Пусть все объекты являются чисто диффузными, то есть отражают рассеивают все равномерно по всем направлениям. Тогда для i-того фрагмента уравнение имеет вид: Ei - собственная излучательность фрагмента,. Fi , j - доля энергии j-того фрагмента, попадающая на i-тый фрагмент коэффициент формы ,. Если пройти по всем объектам, получим систему линейных алгебраических уравнений. Система уравнений имеет так называемое сильное диагональное преобладание, для ее решения можно использовать эффективные итерационные методы типа Гаусса-Зейделя. При этом за небольшое число итераций достигается приемлемое решение. При этом коэффициенты формы определяются только геометрией объектов и от цвета не зависят. Обычно после определения освещенности каждого фрагмента производят билинейную интерполяцию освещенности по всем объектам см. После выбора точки наблюдения объекты проектируются на картинную плоскость и строится изображение. Наиболее трудоемкий процесс - вычисление коэффициентов формы, которые описывают геометрию сцены. Для этого существуют специальные приемы. Система RGB естественна для компьютера. Он характерен для полиграфии и учитывает поглощение и отражение света от белой поверхности бумага. Подход основан на вычитании цветов. На практике только сочетанием 3 базовых цветов достигается не черный, а темно-коричневый цвет из-за неполного поглощения света типографскими красками. Происходит как бы вычитание цвета из белого. Данная система была разработана давно и применялась в полиграфии. Для цветоделения разделения цветов на основные цвета CMYK применялись фотомеханические методы. Существует проблема перевода изображений, разработанных в системе RGB, в систему CMYK. У них разная природа получения цветов и то, что видно на экране монитора, нельзя точно повторить при печати. Преобразование усложняется и тем, что приходится корректировать несовершенство типографских красок подмешиванием черного. Имеются специальные системы предпечатной обработки изображений, которые учитывают не только цвета, но и сорт бумаги и показывают на экране, как будет выглядеть напечатанный рисунок. Существуют программы, которые позволяют создавать рисунок сразу в цветах CMYK. Это учитывается в графических форматах. Но возникают проблемы преобразования файлов, проблемы преобразования и интерпретации цветовых пространств. Системы цветов RGB и CMYK базируются на ограничениях, накладываемых аппаратурой дисплей, типографское оборудование , и основаны на смешении красок. Существует другой подход, учитывающий яркость насыщенность цветов. HSI больше соответствует природе света. Отделение яркости от цветности позволяет более эффективное сжимать изображения см. Представление YcbCr все шире используется для настольных видеосистем. Все системы, кроме CMYK , состоят из 3 компонентов, то есть описывают 3-цветное пространство. Система CMYK описывает 4-цветное пространство. Поэтому преобразование не всегда взаимно однозначно, возникает неточность преобразования и восстановления изображений, искажения. Обычно изображение, полученное программно, корректируется человеком. Монохромные изображения градации серого выводятся на дисплей или лазерный принтер. Используются точки одного цвета. Их густота дает оттенок. Изображение называется полутоновым, если обеспечивается непрерывность оттенка. При редактировании на дисплее используют биты интенсивности. При печати это не подходит. Используется добавочный псевдослучайный сигнал, который позволяет регулировать количество черных точек. При переносе изображений между носителями возникает также проблема точности цветов и для цветных, и для полутоновых изображений. Например, на разных дисплеях различны оттенки красного, белая точка имеет не совсем белый цвет, хотя значения R , G и B равны. Требуется калибровка входных и выходных устройств, например, цветного сканера и монитора, на который идет изображение. В каждом стандарте устанавливается комплект чисел, используемых для определения объективно измеренного цвета. Цвет, который входным и выходным устройством определен как белый, может быть измерен поставщиком устройства и выражен комплектом чисел. Этот результат называется белой точкой устройства. Следовательно, для точной передачи цвета графический файл должен содержать описание в некотором стандарте белой точки передатчика. Пока это реализуется весьма редко, не поддерживается форматами графических файлов. В большинстве устройств также отсутствует автоматическая подстройка цветности. Основные методы сжатия изображений. Сжатие изображений основано на общих принципах сжатия данных. Имеются также саморазвертывающиеся файлы, в которых используется так называемое внутреннее сжатие, то есть программа развертки встроена в структуру файла. Идея состоит в том, что вместо повторяющихся пикселов хранится информация о цвете точки и количестве повторений. Представление данных имеет варианты: Это порождает проблемы воспроизведения. Для большинства растровых файлов, особенно для фотореалистических сжатие RLE не эффективно, так как мало повторяющихся пикселов. Возникает даже лишняя трата ресурсов. Подход создан в г. Для наиболее часто повторяющихся элементов используются более короткие коды. Присвоения хранятся в таблице перекодировки, которая загружается в декодирующую программу перед самими кодами. Существуют различные алгоритмы построения кодов. Степень сжатия оценивается как 8: Для файлов с длинными последовательностями схема Хаффмана работает не очень хорошо. Здесь лучше групповое сжатие. Сначала создается статистическая модель, затем выполняется собственно сжатие кодирование. Метод назван по первым буквам фамилий разработчиков: Сначала метод предназначался для аппаратной реализации. Как и алгоритм Хаффмана, алгоритм LZW имеет несколько вариантов. Кодовая таблица создается не перед кодированием, а в процессе кодирования, что делает алгоритм адаптивным.


Как восстановить удаленные фото на windows 10
Вязание панамки для девочки крючком
Шунтирование желудка где делать
Двигатель плавает холостой ход
Советский спорт новости футбола
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment