
- •Основные сведения о графических системах (гс). Функции гс. Блок-схема гс. Основные сведения о графических системах (гс).
- •Функции гс
- •Блок-схема гс.
- •Векторный и растровый дисплеи. Получение изображения. Сравнительная характеристика.
- •Геометрические преобразования. Однородные координаты. Перенос, поворот, масштабирование в однородных координатах. Двумерные преобразования Перенос
- •Масштабирование
- •Поворот
- •Однородные координаты
- •Перенос
- •Композиции преобразований
- •(Трехмерных)
- •Преобразование отрезков в растровую форму. Простой, пошаговый алгоритмы, алгоритм Брезенхема.
- •Преобразования, как изменение систем координат.
- •Устранение искажений в растровых изображениях. Выравнивание. Мелкие и движущиеся объекты. Алгоритм By.
- •Заполнение области. Алгоритм построчного сканирования, алгоритм заполнения с затравкой. Заполнение линиями.
- •Растровая развёртка многоуг-в (метод использования когерентности сканируемых строк).
- •Растровая развёртка многоуг-в (метод использования когерентности рёбер).
- •Алгоритм отсечения отрезков Козна и Сазерленда. Алгоритм разбиения средней точкой.
- •Основные виды геометрических моделей.
- •Методы построения геометрических моделей (построение кривых и поверхностей, кусочно-аналитическое описание, кинематический принцип, булевы операции, полигональные сетки).
- •Поперечное сечение криволинейного объекта и его полигональная аппроксимация
- •Методы создания реалистических трехмерных изображений.
- •Получение проекций. Основные виды проекций.
- •Общие сведения об удалении скрытых линий. Сравнительная характеристика алгоритмов.
- •Алгоритм сортировки по глубине
- •Алгоритм разбиения области
- •Алгоритм, использующий z-буфер
- •Алгоритм построчного сканирования (пи)
- •Методы закраски полигональной сетки.
- •Фактура. Нанесение узора на поверхность
- •Фактура. Создание неровностей на поверхности.
- •Математическое описание перспективных проекций.
- •Алгоритм трассировки лучей.
- •Общие сведения о свете. Классификация поверхностей по виду отражения.
- •Модель освещения. Свойства объектов
- •4 Типа поверхностей:
- •Отражение диффузное
- •Зеркальное отражение
- •Пропускание света (прозрачность)
- •С рассеянным, диффузным и зеркальным с рассеянным и диффузным с рассеянным светом Без освещения
- •Специальные модели
- •Получение теней.
- •Источник на бесконечности
- •Локальный источник
- •Цвет и его характеристики.
- •Цветовые модели(rgb, cмy).
- •Системы смешивания основных цветов
- •Цветовые модели (hsv, hls). Цветовая гармония.
(Трехмерных)
Путем объединения элементарных трехмерных преобразований можно получить другие преобразования.
Пример. Преобразовать
из начальной позиции в конечную точку
переносится в начало координат,
— располагается вдоль отрицательной
полуоси
.
Для выполнения этой задачи рассмотрим четыре шага:
Перенос точки в начало координат.
Поворот вокруг оси до совмещения с плоскостью
.
Поворот вокруг оси до совмещения с отрицательной полуосью .
Шаг 1
Применим
к
:
Шаг 2
Подставляя эти выражения в матрицу поворота, находим:
Шаг 3
,
где
.
Результат поворота:
,
теперь совпадает с осью .
Преобразование отрезков в растровую форму. Простой, пошаговый алгоритмы, алгоритм Брезенхема.
Растеризация, растрирование — процессы, конечным результатом которых являются растровые изображения.
Растеризация — это перевод изображения, описанного векторным форматом в пиксели или точки, для вывода на дисплей или принтер.
Простой алгоритм растеризации
Равенство должно выполняться
-
Δy
Δx
=
y2 - y1 x2 - x1
Поэтому dx приравниваем к 1.
-
Δy
=
y2 - y1 x2 - x1
Теперь xi = xi+1 + dx, а yi = yi+1 + dy. Округляем до целого – получаем координаты, зарисовываем пиксел (сами значения x и y НЕ округляются, округляем только для получения координаты пиксела)
Пошаговый алгоритм растеризации
Допустим, нам даны координаты начала (x1 , y1 ) и конца (x2 , y2 ) отрезка, тогда уравнение прямой, содержащей отрезок, может быть, записано в виде y = y1 +k(x-x1 ), где k = (y2 -y1 )/(x2 -x1 ), а x пробегает значения от x1 до x2 . Поскольку растровое изображение отрезка содержит только точки с целочисленными координатами, то x будет пробегать только целые значения из отрезка (x1 , x2 ). И в случае |k| < 1 все прекрасно: изменяем значение x, по уравнению прямой, высчитываем значение y, "закрашиваем" точку с координатами (x, y), переходим к началу цикла. Но не трудно заметить, что в случае когда |k| > 1, наше представление отрезка будет иметь пробелы, так как изменение x на единицу приведет к изменению y более чем на единицу. Поэтому в случае |k| > 1 переменные x и y надо поменять ролями.
Алгоритм Брезенхема
Большее
из приращений, либо Δx, либо Δy,
выбирается в качестве единицы растра.В
процессе работы одна из координат (в
зависимости от углового коэффициента)
изменяется на единицу. Изменение другой
координаты (на 0 или 1) зависит от
расстояния между действительным
положением отрезка и ближайшими
координатами сетки. Такое расстояние
мы назовем ошибкой. Алгоритм построен
так, что требуется проверять лишь знак
этой ошибки. На рис. это иллюстрируется
для отрезка в первом октанте, т.е. для
отрезка с угловым коэффициентом, лежащим
в диапазоне от 0 до 1. Из рисунка можно
заметить, что если угловой коэффициент
отрезка из точки (0, 0) больше чем ½,то
его пересечение с прямой х = 1 будет
расположено ближе к прямой y = 1, чем к
прямой y = 0. Следовательно, точка растра
(1, 1) лучше аппроксимирует ход отрезка,
чем точка (1, 0). Если угловой коэффициент
меньше ½, то верно обратное. Для
углового коэффициента, равного ½,
нет какого-либо предпочтительного
выбора. В данном случае алгоритм выбирает
точку (1, 1). Т
ак
как желательно проверять только знак
ошибки, то она первоначально устанавливается
равной -½. Таким образом, если угловой
коэффициент отрезка больше или равен
½, то величина ошибки в следующей точке
растра может быть вычислена как е = -½
+ Δy/Δx. Быстродействие алгоритма можно
увеличить, если использовать только
целочисленную арифметику и исключить
деление. Простое преобразование ē = (-½
+ Δy/Δx) · 2Δx = 2Δy - Δx превратит предыдущие
вычисления в целочисленные и позволит
эффективно реализовать их на аппаратном
или микропрограммном уровне.