exam02 - MiAneko24/bmstu-cg GitHub Wiki
02. Преобразования на плоскости. Вывод расчетных соотношений. Матрицы преобразований.
Преобразования на плоскости
Преобразование изображения на плоскости: A(x, y) → B(x1, y1)
x1 = Ax + By + C
y1 = Dx + Ey + F
Однородные координаты
(x, y, w) - w. масштабный множитель (для плоского случая w = 1), в обратном случае x' = x / w, y' = y / w.
(x1, y1, 1) = (x, y, 1) * Матрица преобразований
Матрица преобразований
Аффинные преобразования - плоскость не вырождается в прямую или в точку, сохраняется параллельность прямых и существует обратное преобразование.
- Операция преобразования, в общем случае, не коммутативна.
- Если определитель матрицы преобразований отличен от нуля, то такое преобразование будет аффинным (потому что тогда существует обратная матрица, которая будет соответствовать обратному преобразованию)
- Любое аффинное преобразование можно представить в виде: перенос, масштабирование, поворот.
Перенос (dx, dy)
A(x, y) → B(x1, y1)
x1 = x + dx
y1 = y + dy
- |dx|, |dy| < 0.5 не делать
Матрица преобразований
Масштабирование (kx, ky, xm, ym)
x1 = kx * x + (1 - kx) * xm
y1 = ky * y + (1 - ky) * ym
- kx = ky - масштабирование однородное
- kx != ky - масштабирование неоднородное
- Отражение относительно OY: kx = -1, ky = 1
- Отражение относительно OX: kx = 1, ky = -1
- Оражение относительно начала координат: kx = -1, ky = -1
- Если коэф. масштабирования больше 1, то изображение удаляется от центра и увеличивается.
- Если коэф. масштабирование меньше 1, то изображение приближается от центра и уменьшается.
Матрица преобразований
Поворот (xc, yc, θ)
x1 = xc + (x - xc) * cosθ + (y - yc) * sinθ
y1 = yc - (x - xc) * sinθ + (y - yc) * cosθ
Вывод:
- Поворот идёт против часовой стрелки.
Матрица преобразований
Коммутативность
Коммутативность – независимость результата преобразований от порядка, в котором они происходят.
Коммутативные операции:
Первое преобразование | Второе преобразование |
---|---|
Перенос | Перенос |
Масштабирование | Масштабирование |
Поворот | Поворот |
Масштабирование однородное | Поворот |
- Остальные комбинации - не коммутативны.
Аддитивные
Перенос (матрица переноса * матрица переноса)
Поворот (матрица поворота * матрица поворота)
Мультипликативные
Масштабирование (матрица масштабированиея * матрица масштабирования)
Следующий вопрос: 03. Построение плоских кривых. Выбор шага изменения аргумента. Алгоритм построения эллипса и окружности по методу средней точки.
Предыдущий вопрос: 01. Задача синтеза сложного динамического изображения. Этапы синтеза изображения. Последовательность и основное содержание.