- •Модели цвета.
- •Методы получения цифровых изображений
- •Направления, связанные с обработкой графической информации
- •Задача распознавания изображений
- •Аффинные преобразования объектов на плоскости. Матричные преобразования: сдвиг, растяжение-сжатие, поворот.
- •Алгоритмы вывода линий
- •Алгоритмы заполнения
- •Меню, панель инструментов, панель атрибутов в Corel Draw.
Аффинные преобразования объектов на плоскости. Матричные преобразования: сдвиг, растяжение-сжатие, поворот.
Элементарные аффинные преобразования на плоскости
Любые преобразования изображений на экране дисплея сводятся к преобразованиям отдельных точек, составляющих растровое изображение. К элементарным преобразованиям точки относят преобразования переноса, масштабирования (сжатия, растяжения), поворота (вращения), зеркального отражения. Из аналитической геометрии известно, что любые сложные преобразования точки можно получить последовательностью (композицией, суперпозицией) элементарных преобразований. В декартовой системе координат произвольная точка М на плоскости представляется парой чисел (x,y) или в векторном виде M= [x y].
Перенос точки М с координатами (x,y) относительно начала координат в точку М* с координатами (x*, y*) математически описывается следующим образом:
x*= x + Tx;
y*= y + Ty,
где Tx, Ty – коэффициенты переноса. В векторной форме преобразование переноса имеет вид: M*= M + T, где M = [x y], M*=[x* y*], T= [Tx Ty]. Преобразование переноса иллюстрируется рисунком 1.
Поворот точки на угол φ относительно начала координат (рис.2) выполняется в соответствии со следующими формулами:
В векторной форме преобразование поворота имеет вид: М*=М · R,
Масштабирование точки может выполняться относительно начала координат по обеим осям X и Y через коэффициенты масштабирования Sx и Sy. Координаты точки после масштабирования определяются в соответствии с выражениями: x*= x · Sx; y*= y · Sy, или в векторной форме М*= М · S,
Эти формулы в зависимости от значений коэффициентов Sx и Sy описывают либо растяжение, либо сжатие вдоль соответствующих координатных осей. Например, при заданный прямоугольник с вершинами О и М растягивается вдоль оси абсцисс (с коэффициентом Sx) и сжимается вдоль оси ординат (с коэффициентом Sy) (рис.3а), а при этот прямоугольник сжимается вдоль оси абсцисс и растягивается вдоль оси ординат.
Зеркальное отражение относительно оси абсцисс записывается при помощи формул:
а относительно оси ординат при помощи формул:
Рассмотренные элементарные преобразования в компьютерной графике обычно выполняются в однородных координатах, обладающим тем свойством, что определяемый ими объект не меняется при умножении всех координат на одно и то же число. Введение однородных координат позволяет унифицировать все элементарные преобразования, которые получаются с использованием только операции умножения.
В однородных координатах точка М(х,у) записывается как трёхкомпонентных вектор с некоторым произвольным масштабным множителем . Связь между декартовыми и однородными координатами устанавливается следующим образом:
Обычно удобно использовать множитель W=1. Тогда соотношение декартовых и однородных координат выглядит совсем просто: , а запись точки в однородных координатах имеет вид .
Если обозначить исходную точку М вектором , тогда преобразованная точка .
Преобразование переноса точки в однородных координатах можно выразить как:
где – матрица переноса.
Преобразование масштабирования точки имеет вид:
где – матрица масштабирования.
Аналогично можно записать преобразование поворота точки в однородных координатах:
где – матрица поворота.
Математические основы компьютерной графики: связь преобразований объектов с преобразованиями координат
Связь преобразований объектов с преобразованиями координат. Преобразование объектов и преобразование систем координат тесно связанно между собой. Движение объектов можно рассматривать как движение в обратном направлении соответствующей системы координат.
С каждым объектом можно связывать как собственную локальную систему координат, так и единую для нескольких объектов.
Типы проекций
Параллельные проекции делятся на два типа в зависимости от соотношения между направлением проецирования и нормалью к проекционной плоскости
1) ортографические – направления совпадают, т. е. направление проецирования является нормалью к проекционной плоскости;
2) косоугольные – направление проецирования и нормаль к проекционной плоскости не совпадают.
Центральная проекция любой совокупности параллельных прямых, которые не параллельны проекционной плоскости, будет сходиться в точке схода. Точек схода бесконечно много.
Мировые, экранные координаты: виды преобразований координат
Мировые: каждый объект индивидуален и имеет свои координаты.
Видовая: Вид из камеры, часть объекта отсекается.
Проекционная: вид по контору. Увеличение или уменьшение.
Экранный: то что мы видим на мониторе, ПК, ТВ.
Базовые растровые алгоритмы.
Алгоритм вывода прямой линии
Поскольку экран растрового дисплея с электронно-лучевой трубкой (ЭЛТ) можно рассматривать как матрицу дискретных элементов (пикселов), каждый из которых может быть подсвечен, нельзя непосредственно провести отрезок из одной точки в другую. Процесс определения пикселов, наилучшим образом аппроксимирующих заданный отрезок, называется разложением в растр. В сочетании с процессом построчной визуализации изображения он известен как преобразование растровой развертки. Для горизонтальных, вертикальных и наклоненных под углом 45°. отрезков выбор растровых элементов очевиден.
Алгоритм Брезенхема.
Хотя алгоритм Брезенхема был первоначально разработан для цифровых графопостроителей, однако он в равной степени подходит для использования растровыми устройствами с ЭЛТ. Алгоритм выбирает оптимальные растровые координаты для представления отрезка. В процессе работы одна из координат - либо x, либо y (в зависиимости от углового коэффициента) - изменяется на единицу. Изменение другой координаты (на 0 или 1) зависит от расстояния между действительным положением отрезка и ближайшими координатами сетки. Такое расстояние мы назовем ошибкой.
Общий алгоритм Брезенхема.
Чтобы реализация алгоритма Брезенхема была полной необходимо обрабатывать отрезки во всех октантах. Модификацию легко сделатть, учитывая в алгоритме номер квадранта, в котором лежит отрезок и его угловой коэффициепт. Когда абсолютная величина углового коэффициента больше 1, у постоянно изменяется на единицу, а критерий ошибки Брезенхема используется для принятия решения об изменении величины x. Выбор постоянно изменяющейся (на +1 или -1) кооординаты зависит от квадранта
Инкрементные алгоритмы
Инкрементные алгоритмы выполняются как последовательное вычисление координат соседних пикселов путём добавления приращений координат. Приращения рассчитываются на основе анализа функции погрешности. В цикле выполняются только целочисленные операции сравнения и сложения/вычитания. Достигается повышение быстродействия для вычислений каждого пиксела по сравнению с прямым способом.
Алгоритмы закрашивания
Алгоритм закрашивания очень часто используется в компьютерной графике для закрашивания фигур имеющих границы. Так же этот алгоритм может иметь и другое применение например его можно использовать для нахождения центра масс тела по его изображению. Приведу два алгоритма один рекурсивный, а второй линейный. Рекурсивный имеет один недостаток, его нельзя использовать для закрашивания больших фигур так как при большом количестве элементов происходит переполнение стека.
Рекурсивный алгоритм
Реку́рсия — метод определения класса объектов или методов предварительным заданием одного или нескольких (обычно простых) его базовыхслучаев или методов, а затем заданием на их основе правила построения определяемого класса, ссылающегося прямо или косвенно на эти базовые случаи.
Волново́й алгори́тм — алгоритм, позволяющий найти минимальный путь в графе с рёбрами единичной длины. Основан на алгоритме поиска в ширину. Применяется для нахождения кратчайшего пути в графе, в общем случае находит лишь его длину.