- •Растровое представление графической информации
- •Векторное представление графической информации
- •Сжатие информации
- •Растровые форматы графических файлов
- •Векторные форматы графических файлов
- •Структура пакета программ компьютерной графики
- •Структура и генерация изображений в компьютерной графике
- •Представление прямой линии в компьютерной графике
- •Алгоритм Брезенхама вычерчивания отрезка прямой линии
- •Алгоритм Брезенхама вычерчивания окружности
- •Устранение лестничного эффекта в компьютерной графике
- •Заполнение области в компьютерной графике
- •Понятие двумерных геометрических преобразований
- •2D геометрические преобразования. Поворот
- •2D геометрические преобразования. Перенос
- •2D геометрические преобразования. Масштабирование
- •2D геометрические преобразования. Матричные уравнения
- •2D геометрические преобразования. Общий алгоритм
- •Преобразование области. Задача кадрирования
- •Задача отсечения в компьютерной графике
- •Сплайны в компьютерной графике
- •Доказательство гладкости кубических сплайнов
- •Кривые Безье в компьютерной графике
- •Фракталы в компьютерной графике
- •Обработка растровых изображений: изменение резкости, тиснение
- •Обработка растровых изображений: акварелизация
- •Уровни подобия моделей в компьютерной графике
- •Этапы построения изображений в 3d
- •Методы описания объектов в 3d
- •Геометрические преобразования в 3d
- •Поворот объектов вокруг оси в 3d
- •Системы координат в компьютерной графике
- •Преобразование координат в компьютерной графике
- •Ортогональное проецирование в компьютерной графике
- •Алгоритм общего ортогонального проецирования
- •Построение центральной проекции в компьютерной графике
- •Афинные преобразования
2D геометрические преобразования. Матричные уравнения
Решение геометрических задач в однородной системе координат становится проще и эффективнее, чем в неоднородных, хотя размерность задачи возрастает на единицу. Это происходит потому, что в однородных координатах выполнение всех геометрических преобразований сводится к одной операции – перемножению двух квадратных матриц 3x3 или матрицы 3x3 и вектора размерностью 3.
В однородных координатах вектор точки Р и матрицы поворота R, переноса T и масштабирования S принимают вид
2D геометрические преобразования. Общий алгоритм
1. Определение графического объекта (исходные координаты всех базовых точек).
2. Определение констант геометрических преобразований (a, Tx, Ty, Sx, Sy);
3. Вычисление матриц геометрических преобразований S, R, T (вызов функций Tran2, Rot2, Scale2).
4. Вычисление общей матрицы всех геометрических преобразований: M = R·T; Q = S·M (применяем функцию Mult2).
5. Вычисление необходимых дополнительных точек графического объекта по базовым (точки на дуге по центру и радиусу и др.).
6. Вычисление новых координат всех необходимых точек: P’ = Q·P, где P = (х, у, 1) – исходная точка; P’ = (х’, у’, 1) – полученная в результате преобразования.
7. Визуализация точек P’ и построение отрезков, соединяющих предыдущую построенную точку с последующей (текущей).
Шаги 5, 6, 7 повторяются для всех точек объекта.
Преобразование области. Задача кадрирования
Кадрирование точек выполняется просто. Необходимо лишь проверить условие |ix| + |iy| = 0. Если точка находится внутри экранной области, она изображается, в противном случае – отбрасывается.
Кадрирование отрезков – более сложная задача. Здесь различается несколько случаев, определяемых тем, какая часть (или какие части) отрезка выходят за пределы графического окна.
При выполнении операции кадрирования решаются две задачи – отсечения и покрытия.
Задача отсечения в компьютерной графике
Если изображение выходит за пределы экрана, то на части дисплеев увеличивается время построения за счет того, что изображение строится в "уме". В некоторых дисплеях это приводит к искажению изображения. Поэтому требуется выполнения отсечения сцены по границам окна видимости.
Сплайны в компьютерной графике
Один из наиболее эффективных (по качеству получаемого результата и вычислительным затратам) методов решения этой задачи – применение сплайнов. Сплайн - это очень гладкая кривая. Математически гладкость кривых выражается в терминах непрерывности параметрических представлений x(t) и y(t) и их производных.
x(t) = a0+ a1t + a2t2 + a3t3;
y(t) = b0+ b1t + b2t2 + b3t3.
Доказательство гладкости кубических сплайнов
Кривые типа В-сплайна (кубический сплайн) обеспечивают получение более гладких кривых, чем другие способы сглаживания, за счет того, что получаемые кривые не проходят точно через заданные точки.
Для определения свойств кривой в точках стыковки двух сегментов рассмотрим функцию x(t) и ее первую и вторую производные для значений t=0 и t=1. Функция y(t) будет обладать аналогичными свойствами.
x(0) = a0 = (xi-1 + 4xi + xi+1)/6;
x(1) = a0 +a1 +a2 + a3 = (xi + 4xi+1 + xi+2)/6.
То есть значение x(0) не равно в точности x-координате xi точки Pi: оно зависит от позиций точек Pi-1 и Pi+1. Поэтому опорные точки не лежат на кривой – это точки притяжения (управляющие точки), которые задают форму кривой, обеспечивая ее гладкость.
