Открыть сервис

Аффинные преобразования

Аффинные преобразования — это класс геометрических преобразований плоскости или пространства, сохраняющих прямые линии, параллельность прямых и отношение отрезков на одной прямой. В более широком смысле, аффинные преобразования — это отображения аффинного пространства на себя, которые могут быть представлены в виде композиции линейного преобразования и параллельного переноса. Они являются основой аффинной геометрии и широко применяются в компьютерной графике, робототехнике, механике, кристаллографии и других областях.

Определение и формальное описание

Аффинное преобразование (от лат. affinis — «смежный», «родственный») — это отображение f аффинного пространства A в себя, которое можно записать в виде:

f(x) = L(x) + v,

где L — линейное преобразование (линейный оператор), а vвектор параллельного переноса. В координатной форме, для точки с координатами (x₁, x₂, …, xₙ) в n-мерном пространстве, аффинное преобразование записывается как:

yᵢ = Σⱼ aᵢⱼ xⱼ + bᵢ,

где aᵢⱼ — элементы матрицы линейного преобразования, а bᵢ — компоненты вектора переноса.

Ключевое свойство: аффинные преобразования сохраняют коллинеарность (точки, лежащие на одной прямой, остаются на одной прямой) и отношение, в котором точка делит отрезок. Однако они не обязательно сохраняют расстояния и углы, в отличие от изометрических преобразований (движений).

История

Понятие аффинного преобразования восходит к работам древнегреческих математиков, в частности к Евклиду, который в своих «Началах» рассматривал подобие фигур. Однако систематическое изучение аффинных преобразований началось в XIX веке. Термин «аффинное преобразование» ввёл немецкий математик Август Фердинанд Мёбиус в 1827 году в своей работе «Der barycentrische Calcul» («Барицентрическое исчисление»). Мёбиус использовал аффинные преобразования для изучения проективной геометрии.

В XX веке, с развитием компьютерной графики и обработки изображений, аффинные преобразования стали фундаментальным инструментом для масштабирования, поворота, сдвига и отражения объектов.

Виды аффинных преобразований

Аффинные преобразования включают в себя несколько подтипов, которые различаются свойствами матрицы L.

Параллельный перенос

Простейшее аффинное преобразование, при котором L = I (единичная матрица). Все точки сдвигаются на один и тот же вектор v:

f(x) = x + v.

Масштабирование (гомотетия)

Изменение размеров объекта относительно начала координат (или другой точки). В двумерном случае матрица масштабирования имеет вид:

L = [[sₓ, 0], [0, sᵧ]],

где sₓ и sᵧ — коэффициенты масштабирования по осям x и y соответственно. Если sₓ = sᵧ, масштабирование называется равномерным (гомотетией).

Поворот

Вращение объекта вокруг начала координат на угол θ. Матрица поворота в двумерном пространстве:

L = [[cos θ, -sin θ], [sin θ, cos θ]].

Отражение (зеркальное отображение)

Отображение относительно прямой (на плоскости) или плоскости (в пространстве). Например, отражение относительно оси x задаётся матрицей:

L = [[1, 0], [0, -1]].

Сдвиг (скос)

Деформация, при которой одна координата изменяется пропорционально другой. Например, сдвиг вдоль оси x:

L = [[1, k], [0, 1]],

где kкоэффициент сдвига.

Композиция преобразований

Любое аффинное преобразование может быть представлено как последовательность (композиция) перечисленных выше базовых преобразований. Композиция аффинных преобразований также является аффинным преобразованием.

Матричное представление

Для удобства вычислений аффинные преобразования часто записывают в виде одной матрицы, используя однородные координаты. В однородных координатах точка n-мерного пространства представляется вектором размерности n+1. Для двумерного случая точка (x, y) записывается как (x, y, 1). Тогда аффинное преобразование задаётся матрицей 3×3:

[[a₁₁, a₁₂, b₁], [a₂₁, a₂₂, b₂], [0, 0, 1]]

Применение преобразования к точке (x, y, 1) даёт новую точку (x', y', 1). Это позволяет объединять несколько последовательных преобразований в одну матрицу путём перемножения соответствующих матриц.

Свойства аффинных преобразований

  • Сохранение прямых: образ прямой линии — прямая линия.
  • Сохранение параллельности: параллельные прямые переходят в параллельные прямые.
  • Сохранение отношения отрезков: отношение длин отрезков на одной прямой не меняется.
  • Сохранение барицентрических координат: если точка является центром масс системы точек с заданными массами, то её образ будет центром масс образов этих точек с теми же массами.
  • Несохранение расстояний и углов: в общем случае аффинные преобразования искажают длины и углы, за исключением частных случаев (изометрии, подобия).
  • Обратимость: если линейное преобразование L невырождено (его определитель не равен нулю), то аффинное преобразование обратимо. Обратное преобразование также является аффинным.

Применение

Компьютерная графика и обработка изображений

Аффинные преобразования являются основой для операций с двумерной и трёхмерной графикой:

  • Масштабирование: изменение размера изображений и объектов.
  • Поворот: вращение объектов вокруг заданной точки.
  • Сдвиг: создание эффектов наклона (например, курсивный текст).
  • Трансформация текстур: наложение текстур на поверхности.
  • Геометрическая коррекция: выравнивание изображений, полученных с искажением (например, при сканировании).

Робототехника и механика

В робототехнике аффинные преобразования используются для описания перемещений звеньев манипуляторов и роботов. Матрицы поворота и переноса позволяют вычислять положение и ориентацию рабочего органа относительно системы координат робота.

Кристаллография

В кристаллографии аффинные преобразования описывают симметрию кристаллических решёток. Операции симметрии (повороты, отражения, переносы) являются частными случаями аффинных преобразований.

Математика и физика

В математике аффинные преобразования изучаются в рамках аффинной геометрии. В физике они используются, например, для описания преобразований Лоренца в специальной теории относительности (хотя они не являются аффинными в евклидовом смысле, но имеют сходную структуру).

Примеры

  1. Преобразование подобия: равномерное масштабирование и поворот. Например, увеличение фотографии с сохранением пропорций.
  2. Сжатие/растяжение: неравномерное масштабирование по разным осям. Например, превращение круга в эллипс.
  3. Скос: превращение квадрата в параллелограмм. Например, эффект наклона в текстовых редакторах.

Связь с другими преобразованиями

  • Изометрические преобразования (движения): сохраняют расстояния. Являются частным случаем аффинных преобразований, когда матрица L ортогональна (её определитель равен ±1).
  • Преобразования подобия: сохраняют форму, но не размер. Являются композицией изометрии и равномерного масштабирования.
  • Проективные преобразования: более общий класс, не сохраняющий параллельность прямых. Аффинные преобразования являются частным случаем проективных.

Критика и ограничения

Основное ограничение аффинных преобразований — невозможность моделировать непрямолинейные искажения, такие как перспективные искажения (когда параллельные линии сходятся в точке схода) или изгибы. Для таких задач используются проективные преобразования или нелинейные преобразования (например, с помощью сплайнов). Кроме того, аффинные преобразования не сохраняют площади (кроме случаев, когда определитель матрицы L равен ±1), что может быть критично в некоторых приложениях.

Источники

  1. Мёбиус А. Ф. «Der barycentrische Calcul» (1827).
  2. Кокстер Г. С. М. «Введение в геометрию» (1969).
  3. Роджерс Д., Адамс Дж. «Математические основы машинной графики» (1976).
  4. Шапиро Л. «Компьютерное зрение» (2001).
  5. Фоли Дж., ван Дам А. «Основы интерактивной машинной графики» (1982).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →