
- •Закраска. (Растровая развертка сплошных областей (ррсо)).
- •Заполнение многоугольников.
- •Простой алгоритм закраски с упорядоченным списком ребер.
- •Алгоритм заполнения по ребрам.
- •Алгоритм заполнения по ребрам с перегородкой.
- •Алгоритм со списком ребер и флагом.
- •Алгоритмы заполнения (закраски) с затравкой.
- •Простой алгоритм закраски с затравкой
- •Построчный алгоритм закраски с затравкой.
- •Отсечение.
- •Двух мерное отсечение.
- •2: Отрезок невидим.
- •3: Переходим к следующему отрезку. Метод Коэна – Сазерленда.
- •Непараметрический способ.
- •Метод предложен Сазерлендом и Спрулом: «Метод разбиения отрезка средней точкой».
- •Отсечение произвольным окном (выпуклым).
- •Отсечение параметрически заданного отрезка прямоугольным регулярным окном (частный случай нерегулярного).
- •Алгоритм Кируса – Бека.
- •Внутреннее и внешнее отсечение.
- •Определение факта выпуклости окна. Метод переносов и поворотов.
- •Разрезание невыпуклого окна.
- •Разбиение невыпуклых многоугольников.
- •Форматы графических файлов.
- •Истинно черно-белые изображения в градациях серого.
- •Цветовые плоскости изображения.
- •Гарантия точности соответствия цветов.
- •Колориметрические стандарты.
Внутреннее и внешнее отсечение.
Внешнее отсечение необходимо использовать в случае нескольких окон с приоритетами.
Если приоритеты окон в порядке убывания: 1,2,3, экран, то изображения в окне экрана отсекаются его собственной внутренней областью и внешними областями 1,2,3 окна и так далее (для окон 1,2,3)
V1V2V3V4V5V6V1 – невыпуклое окно. Его можно рассматривать как разность окон V1V2V3V5V6V1 и V3V5V4V3. Для МУ V1V2V3V5V6V1 решаем задачу внутреннего отсечения, результатом такого отсечения будет отрезок Р1I Р2I, а для МУ V3V5V4V3решаем задачу внешнего отсечения, то есть визуализируем то, что не попало в этот треугольник. (отсекаем отрезок Р2II Р2I).
Определение факта выпуклости окна. Метод переносов и поворотов.
Алгоритм:
Вначале нумеруем вершины МУ (окна) против часовой стрелки.
Для каждой iой вершины окна переносим окно так, чтобы эта вершина совпала с началом координат.
Поворачиваем окно относительно начала координат, так чтобы i+1вершина оказалась на положительной полуоси Х.
Вычисляем для i+2 вершины знак ординаты Y.
Если знак ординаты Y всех «i+2» вершин совпадает, то окно выпуклое, иначе оно невыпуклое.
Пример: Вывод: многоугольник выпуклый.
Разрезание невыпуклого окна.
Разбиение невыпуклых многоугольников.
Обобщая метод переносов и поворотов получаем метод (алгоритм) разбиения невыпуклого МУ на несколько выпуклых МУ. Если вершины МУ пронумеровать против часовой стрелки, то:
Для каждой iвершины МУ надо перенести его так, чтобы эта вершина совпала с началом координат.
Повернуть МУ относительно начала координат по часовой стрелке так, чтобы i+1 вершина оказалась на положительной полуоси Х.
Проанализировать знак ординаты Yi+2 вершины.
Если он положительный, то МУ выпуклый в i+1 вершине, если отрицательный, то МУ невыпуклый и его надо разрезать, то есть ищутся такие его стороны, которые пересекаются с осью Х.
Образуется два новых МУ.
Первый МУ образован вершинами исходной фигуры, начиная с i+1 вершины и кончая вершиной, ближайшей к началу координат в точке пересечения с Х>Хi+1. Этот полученный МУ целиком лежит ниже оси Х.
Второй МУ образован этой точкой пересечения и всеми вершинами исходной фигуры, не вошедшими в состав первого МУ (этот МУ может пересекать ось Х).
Алгоритм рекурсивно применяется к МУ до тех пор, пока он не станет выпуклым.
Первый МУ: V3V4(точка пересечения)V3.
Второй МУ: V2(точка пересечения)V5V1V2.
Этот метод не дает оптимального разбиения с точки зрения минимального числа выпуклых компонентов.
16.12.02
Лекция 14.
Форматы графических файлов.
Типы файлов:
Bitmap (растровые).
Векторные.
Изображения:
Черно-белые (монохромные для чертежей и диаграмм с градациями серого).
Цветные изображения.
Градации серого можно получить, меняя плотность нанесения черных точек.