Jump to content

2D компьютерная графика

(Перенаправлено из 2D компьютерной графики )

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

Растровые графические спрайты (слева) и маски

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

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

2D-компьютерная графика возникла в 1950-х годах на основе устройств векторной графики . они были в значительной степени вытеснены растровыми устройствами В последующие десятилетия . Язык PostScript и протокол X Window System стали знаковыми разработками в этой области.

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

Фон (геометрия)

[ редактировать ]
При переносе каждая точка фигуры или пространства перемещается на одинаковую величину в заданном направлении.

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

Если v — фиксированный вектор, то перевод T v будет работать как T v ( p ) = p + v .

Если T перевод, то образ подмножества A относительно функции T это перевод A на T. — Перевод A на T v часто пишется как A + v .

В евклидовом пространстве любой сдвиг является изометрией . Совокупность всех переводов образует группу переводов T , которая изоморфна самому пространству, и нормальную подгруппу евклидовой группы E ( n ). Факторгруппа n E ( ( n ) по изоморфна ортогональной группе O ) T :

Е ( п ) / Т О ( п ).

Поскольку сдвиг является аффинным преобразованием , а не линейным преобразованием , однородные координаты обычно используются для представления оператора перевода в виде матрицы и, таким образом, для того, чтобы сделать его линейным. Таким образом, мы запишем трехмерный вектор w = ( w x , w y , w z ), используя 4 однородные координаты, как w = ( w x , w y , w z , 1). [ 1 ]

Чтобы перевести объект с помощью вектора v , каждый однородный вектор p (записанный в однородных координатах) необходимо будет умножить на эту матрицу перевода :

Как показано ниже, умножение даст ожидаемый результат:

Обратная матрица перевода может быть получена путем изменения направления вектора:

Аналогично, произведение матриц перевода определяется сложением векторов:

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

Вращение

[ редактировать ]

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

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

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

Матрицы вращения представляют собой квадратные матрицы с действительными элементами. Более конкретно их можно охарактеризовать как ортогональные матрицы с определителем 1:

.

Набор n матриц размера n образует группу , известную как специальная ортогональная группа SO( всех таких ) .

В двух измерениях

[ редактировать ]
Поворот вектора против часовой стрелки на угол θ . Вектор изначально выровнен по оси X.

В двух измерениях каждая матрица вращения имеет следующий вид:

.

Это вращает векторы-столбцы посредством следующего матричного умножения :

.

Таким образом, координаты (x',y') точки (x,y) после вращения:

,
.

Направление вращения вектора — против часовой стрелки, если θ положительное (например, 90°), и по часовой стрелке, если θ отрицательное (например, -90°).

.

Нестандартная ориентация системы координат

[ редактировать ]
Поворот на угол θ с нестандартными осями.

стандартная правосторонняя декартова система координат Если используется , с осью x вправо и осью y вверх, вращение R( θ ) происходит против часовой стрелки. Если используется левая декартова система координат, где x направлен вправо, а y направлен вниз, R( θ ) движется по часовой стрелке. Такие нестандартные ориентации редко используются в математике, но часто встречаются в 2D-компьютерной графике, начало которой часто находится в верхнем левом углу, а ось Y — вниз по экрану или странице. [ 2 ]

приведены Ниже другие альтернативные соглашения, которые могут изменить направление вращения, производимое матрицей вращения .

Общие ротации

[ редактировать ]

Особенно полезны матрицы для поворотов на 90° и 180°:

(вращение на 90° против часовой стрелки)
(поворот на 180° в обе стороны – пол-оборота)
(поворот на 270° против часовой стрелки, то же, что вращение на 90° по часовой стрелке)

Масштабирование

[ редактировать ]

В евклидовой геометрии равномерное масштабирование ( изотропное масштабирование , [ 3 ] однородное расширение , гомотетия ) — линейное преобразование , увеличивающее (увеличивающее) или сжимающее (уменьшающее) объекты на масштабный коэффициент , одинаковый во всех направлениях. Результат равномерного масштабирования аналогичен (в геометрическом смысле) оригиналу. Обычно допускается масштабный коэффициент, равный 1, поэтому конгруэнтные формы также классифицируются как подобные. (Некоторые школьные учебники специально исключают эту возможность, так же как некоторые исключают квадраты из прямоугольников или круги из эллипсов.)

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

Масштабирование может быть представлено матрицей масштабирования. Чтобы масштабировать объект вектором v = ( v x , v y , v z ), каждую точку p = ( p x , p y , p z ) необходимо будет умножить на эту матрицу масштабирования :

Как показано ниже, умножение даст ожидаемый результат:

Такое масштабирование изменяет диаметр объекта на коэффициент между масштабными коэффициентами, площадь на коэффициент между наименьшим и наибольшим произведением двух масштабных коэффициентов, а объем на произведение всех трех.

Масштабирование является равномерным тогда и только тогда, когда коэффициенты масштабирования равны ( v x = v y = v z ). Если все масштабные коэффициенты, кроме одного, равны 1, мы имеем направленное масштабирование.

В случае, когда v x = v y = v z = k , масштабирование также называется увеличением или расширением в k раз, увеличивая площадь в k раз. 2 а объем в k раз 3 .

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

Использование однородных координат

[ редактировать ]

В проективной геометрии , часто используемой в компьютерной графике , точки представляются с использованием однородных координат . Чтобы масштабировать объект вектором v = ( v x , v y , v z ), каждый однородный координатный вектор p = ( p x , py , p z , 1) необходимо умножить на эту матрицу проективного преобразования :

Как показано ниже, умножение даст ожидаемый результат:

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

Для каждого вектора p = ( p x , p y , p z , 1) мы будем иметь

который будет гомогенизирован до

Прямая покраска

[ редактировать ]

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

Некоторые программы устанавливают цвета пикселей напрямую, но большинство из них полагаются на какую-либо библиотеку 2D-графики компьютера или видеокарту , которые обычно реализуют следующие операции:

Расширенные цветовые модели

[ редактировать ]

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

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

2D-анимированный персонаж, составленный из 3D-фона с использованием слоев.

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

Слоистые модели иногда называют «2 1 2 -D компьютерная графика». Они позволяют имитировать традиционные методы черчения и печати на основе пленки и бумаги, такие как вырезание и вставка; и позволяют пользователю редактировать любой слой, не затрагивая другие. По этим причинам они используются в большинстве графических редакторов . Многослойные модели также обеспечивают лучшее пространственное сглаживание сложных рисунков и обеспечивают надежную модель для определенных методов, таких как соединения под углом и правило чет-нечет .

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

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

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

См. также раздел «Формат переносимого документа#Слои» .

Аппаратное обеспечение

[ редактировать ]

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

Классические 2D- графические чипы и графические процессоры конца 1970-х — 1980-х годов, используемые в 8-битных и ранних 16-битных играх , аркадных играх , игровых консолях и домашних компьютерах , включают:

Программное обеспечение

[ редактировать ]

Многие графические пользовательские интерфейсы (GUI), включая macOS , Microsoft Windows или X Window System , в основном основаны на концепциях 2D-графики. Такое программное обеспечение обеспечивает визуальную среду для взаимодействия с компьютером и обычно включает в себя некоторую форму оконного менеджера , помогающую пользователю концептуально различать различные приложения. Пользовательский интерфейс в отдельных программных приложениях обычно также является двухмерным по своей природе, отчасти из-за того, что большинство распространенных устройств ввода , таких как мышь , ограничены двумя измерениями движения.

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

Редакторы 2D-графики или программы для рисования — это программное обеспечение прикладного уровня для создания изображений, диаграмм и иллюстраций путем прямого манипулирования (через мышь, графический планшет или подобное устройство) примитивами 2D-компьютерной графики. Эти редакторы обычно предоставляют геометрические примитивы , а также цифровые изображения ; а некоторые даже поддерживают процедурные модели. Иллюстрация обычно представляет собой многоуровневую модель, часто имеющую иерархическую структуру, чтобы сделать редактирование более удобным. Эти редакторы обычно выводят графические файлы , в которых слои и примитивы отдельно сохраняются в исходной форме. MacDraw , представленный в 1984 году вместе с линейкой компьютеров Macintosh , был ранним примером этого класса; недавними примерами являются коммерческие продукты Adobe Illustrator и CorelDRAW , а также бесплатные редакторы, такие как xfig или Inkscape . Существует также множество редакторов 2D-графики, специализирующихся на определенных типах чертежей, таких как электрические, электронные схемы и схемы СБИС, топографические карты, компьютерные шрифты и т. д.

Редакторы изображений специализированы для манипулирования цифровыми изображениями , в основном посредством рисования от руки и обработки сигналов операций . Обычно они используют парадигму прямого рисования, когда пользователь управляет виртуальными ручками, кистями и другими художественными инструментами от руки, чтобы нанести краску на виртуальный холст. Некоторые редакторы изображений поддерживают многослойную модель; однако для поддержки операций обработки сигналов, таких как размытие, каждый слой обычно представляется в виде цифрового изображения. Поэтому любые геометрические примитивы, предоставляемые редактором, немедленно преобразуются в пиксели и рисуются на холсте. Название «редактор растровой графики» иногда используется, чтобы противопоставить этот подход подходу обычных редакторов, которые также обрабатывают векторную графику . Одним из первых популярных графических редакторов был Apple от MacPaint , аналог MacDraw . Современные примеры — бесплатный редактор GIMP , а также коммерческие продукты Photoshop и Paint Shop Pro . В этот класс также входит множество специализированных редакторов — для медицины, дистанционного зондирования, цифровая фотография и т. д.

Развивающая анимация

[ редактировать ]

С возрождением [ 4 ] : 8  В области 2D-анимации как бесплатные, так и проприетарные пакеты программного обеспечения стали широко доступны для любителей и профессиональных аниматоров. С помощью такого программного обеспечения, как RETAS UbiArt Framework и Adobe After Effects , раскрашивание и композицию можно выполнить за меньшее время. [ нужна ссылка ]

Были разработаны различные подходы [ 4 ] : 38  чтобы помочь и ускорить процесс цифровой 2D-анимации. Например, создавая векторные изображения с помощью такого инструмента, как Adobe Flash, художник может использовать программную автоматическую раскраску и промежуточные операции .

Такие программы, как Blender или Adobe Substance, позволяют пользователю создавать 3D-анимацию, 2D-анимацию или комбинировать и то, и другое в своем программном обеспечении, позволяя экспериментировать с несколькими формами анимации. [ 5 ]

См. также

[ редактировать ]
  1. ^ Ричард Пол, 1981, Роботы-манипуляторы: математика, программирование и управление: компьютерное управление роботами-манипуляторами , MIT Press, Кембридж, Массачусетс.
  2. ^ «Масштабируемая векторная графика — исходная система координат» , w3.org , 2003 г.
  3. ^ Дюран; Катлер. «Преобразования» (PowerPoint) . Массачусетский технологический институт . Проверено 12 сентября 2008 г.
  4. ^ Jump up to: а б Пайл, Джон младший (май 2013 г.). Программирование 2D-графики для игр . Нью-Йорк, штат Нью-Йорк: CRC Press. ISBN  978-1466501898 .
  5. ^ «blender.org — главная страница проекта Blender — бесплатное и открытое программное обеспечение для создания 3D-изображений» . сайт blender.org . Проверено 24 апреля 2019 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 24180e3070308da732ed0a9c198d25e3__1709766180
URL1:https://arc.ask3.ru/arc/aa/24/e3/24180e3070308da732ed0a9c198d25e3.html
Заголовок, (Title) документа по адресу, URL1:
2D computer graphics - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)