В евклидовой геометрии аффинное преобразование или сродство (от латинского affinis — «связанный с») — это геометрическое преобразование , которое сохраняет прямые и параллельность , но не обязательно евклидовы расстояния и углы .
В более общем смысле, аффинное преобразование — это автоморфизм аффинного пространства (евклидовы пространства — это особые аффинные пространства), то есть функция , которая отображает аффинное пространство на себя, сохраняя как размерность любых аффинных подпространств (то есть, она переводит точки в точки, прямые в прямые, плоскости в плоскости и т. д.), так и отношения длин параллельных отрезков прямых. Следовательно, множества параллельных аффинных подпространств остаются параллельными после аффинного преобразования. Аффинное преобразование не обязательно сохраняет углы между прямыми или расстояния между точками, хотя оно сохраняет отношения расстояний между точками, лежащими на прямой.
Если X — множество точек аффинного пространства, то каждое аффинное преобразование на X может быть представлено как композиция линейного преобразования на X и переноса X. В отличие от чисто линейного преобразования, аффинное преобразование не обязательно сохраняет начало координат аффинного пространства. Таким образом, каждое линейное преобразование является аффинным, но не каждое аффинное преобразование является линейным.
Примерами аффинных преобразований являются перенос, масштабирование , гомотетия , подобие , отражение , вращение , гиперболическое вращение , сдвиговое отображение и их композиции в любой комбинации и последовательности.
Рассматривая аффинное пространство как дополнение гиперплоскости на бесконечности проективного пространства , аффинные преобразования являются проективными преобразованиями этого проективного пространства, которые оставляют гиперплоскость на бесконечности инвариантной , ограниченной дополнением этой гиперплоскости.
Обобщением аффинного преобразования является аффинное отображение [1] (или аффинный гомоморфизм или аффинное отображение ) между двумя (потенциально различными) аффинными пространствами над одним и тем же полем k. Пусть (X, V, k ) и ( Z , W , k ) — два аффинных пространства с X и Z — множествами точек , а V и W — соответствующими связанными векторными пространствами над полем k . Отображение f : X → Z является аффинным отображением, если существует линейное отображение m f : V → W такое, что m f ( x − y ) = f ( x ) − f ( y ) для всех x, y в X . [2]
Пусть X — аффинное пространство над полем k , а V — его связанное векторное пространство. Аффинное преобразование — это биекция f из X на себя, которая является аффинным отображением ; это означает, что линейное отображение g из V в V хорошо определено уравнением здесь, как обычно, вычитание двух точек обозначает свободный вектор из второй точки в первую, а « хорошо определено » означает, что подразумевается, что
Если размерность X не менее двух, то полуаффинное преобразование f множества X является биекцией из X на себя, удовлетворяющей условию: [3]
Эти два условия удовлетворяются аффинными преобразованиями и выражают то, что именно подразумевается под выражением « f сохраняет параллельность».
Эти условия не являются независимыми, поскольку второе следует из первого. [4] Более того, если поле k имеет по крайней мере три элемента, первое условие можно упростить до: f является коллинеацией , то есть оно отображает линии в линии. [5]
По определению аффинного пространства V действует на X , так что для каждой пары в X × V связана точка y в X . Мы можем обозначить это действие как . Здесь мы используем соглашение, что есть два взаимозаменяемых обозначения для элемента V . Зафиксировав точку c в X , можно определить функцию m c : X → V как m c ( x ) = cx → . Для любого c эта функция является взаимно однозначной, и поэтому имеет обратную функцию m c −1 : V → X , заданную как . Эти функции можно использовать для превращения X в векторное пространство (относительно точки c ), определив: [6]
Это векторное пространство имеет начало c и формально должно быть отделено от аффинного пространства X , но общепринятой практикой является обозначение его тем же символом и указание того, что это векторное пространство, после указания начала. Эта идентификация позволяет рассматривать точки как векторы и наоборот.
Для любого линейного преобразования λ из V мы можем определить функцию L ( c , λ ) : X → X следующим образом:
Тогда L ( c , λ ) является аффинным преобразованием X , которое оставляет точку c неподвижной. [7] Это линейное преобразование X , рассматриваемое как векторное пространство с началом координат c .
Пусть σ — любое аффинное преобразование X. Выберем точку c в X и рассмотрим перенос X вектором , обозначенным T w . Переносы являются аффинными преобразованиями, а композиция аффинных преобразований является аффинным преобразованием. Для этого выбора c существует единственное линейное преобразование λ множества V такое, что [8]
То есть произвольное аффинное преобразование X представляет собой композицию линейного преобразования X (рассматриваемого как векторное пространство ) и переноса X.
Это представление аффинных преобразований часто принимается за определение аффинного преобразования (при этом выбор начала координат подразумевается). [9] [10] [11]
Как показано выше, аффинное отображение представляет собой композицию двух функций: переноса и линейного отображения. Обычная векторная алгебра использует матричное умножение для представления линейных отображений и векторное сложение для представления переносов. Формально, в конечномерном случае, если линейное отображение представлено как умножение на обратимую матрицу , а перенос — как сложение вектора , аффинное отображение, действующее на вектор, можно представить как
Используя расширенную матрицу и расширенный вектор, можно представить как перенос, так и линейное отображение с помощью одного умножения матриц . Метод требует, чтобы все векторы были дополнены «1» в конце, а все матрицы были дополнены дополнительной строкой нулей внизу, дополнительным столбцом — вектором переноса — справа и «1» в нижнем правом углу. Если — матрица,
эквивалентно следующему
Вышеупомянутая расширенная матрица называется матрицей аффинного преобразования . В общем случае, когда последний вектор строки не ограничен , матрица становится матрицей проективного преобразования (поскольку ее также можно использовать для выполнения проективных преобразований ).
Это представление показывает множество всех обратимых аффинных преобразований как полупрямое произведение и . Это группа относительно операции композиции функций, называемая аффинной группой .
Обычное умножение матрицы на вектор всегда отображает начало координат в начало координат и, следовательно, никогда не может представлять собой перенос, в котором начало координат обязательно должно быть отображено в некоторую другую точку. Добавляя дополнительную координату «1» к каждому вектору, мы по существу рассматриваем отображаемое пространство как подмножество пространства с дополнительным измерением. В этом пространстве исходное пространство занимает подмножество, в котором дополнительная координата равна 1. Таким образом, начало координат исходного пространства может быть найдено в . Тогда возможен перенос в исходном пространстве посредством линейного преобразования пространства большей размерности (в частности, преобразования сдвига). Координаты в пространстве большей размерности являются примером однородных координат . Если исходное пространство является евклидовым , пространство большей размерности является действительным проективным пространством .
Преимущество использования однородных координат заключается в том, что можно объединить любое количество аффинных преобразований в одно путем умножения соответствующих матриц. Это свойство широко используется в компьютерной графике , компьютерном зрении и робототехнике .
Предположим, у вас есть три точки, которые определяют невырожденный треугольник на плоскости, или четыре точки, которые определяют невырожденный тетраэдр в 3-мерном пространстве, или, в общем случае, n + 1 точек x 1 , ..., x n +1 , которые определяют невырожденный симплекс в n -мерном пространстве. Предположим, у вас есть соответствующие точки назначения y 1 , ..., y n +1 , где эти новые точки могут лежать в пространстве с любым числом измерений. (Более того, новые точки не должны отличаться друг от друга и не должны образовывать невырожденный симплекс.) Уникальная расширенная матрица M , которая достигает аффинного преобразования , это
Аффинное преобразование сохраняет:
Так как аффинное преобразование обратимо , то квадратная матрица, появляющаяся в его матричном представлении, обратима . Матричное представление обратного преобразования, таким образом,
Обратимые аффинные преобразования (аффинного пространства на себя) образуют аффинную группу , которая имеет общую линейную группу степени в качестве подгруппы и сама является подгруппой общей линейной группы степени .
Преобразования подобия образуют подгруппу, где — скаляр, умноженный на ортогональную матрицу . Например, если аффинное преобразование действует на плоскость и если определитель равен 1 или −1, то преобразование является эквиареальным отображением . Такие преобразования образуют подгруппу, называемую эквиаффинной группой . [13] Преобразование, которое является как эквиаффинным, так и подобием, является изометрией плоскости, взятой с евклидовым расстоянием .
Каждая из этих групп имеет подгруппу сохраняющих ориентацию или положительных аффинных преобразований: тех, где определитель положителен. В последнем случае это в 3D группа жестких преобразований ( собственные вращения и чистые переносы).
Если есть фиксированная точка, мы можем взять ее за начало координат, и аффинное преобразование сведется к линейному преобразованию. Это может облегчить классификацию и понимание преобразования. Например, описание преобразования как поворота на определенный угол относительно определенной оси может дать более четкое представление об общем поведении преобразования, чем описание его как комбинации переноса и поворота. Однако это зависит от приложения и контекста.
Аффинное отображение между двумя аффинными пространствами — это отображение на точках, которое действует линейно на векторы (то есть векторы между точками пространства). В символах определяет линейное преобразование , такое что для любой пары точек :
или
Мы можем интерпретировать это определение несколькими другими способами, как указано ниже.
Если выбрано начало координат и обозначено его изображение , то это означает, что для любого вектора :
Если также выбрано начало координат , то его можно разложить как аффинное преобразование , которое посылает , а именно
с последующим переносом на вектор .
Вывод заключается в том, что интуитивно понятно, что он состоит из переноса и линейного отображения.
Для двух аффинных пространств и над одним и тем же полем функция является аффинным отображением тогда и только тогда, когда для каждого семейства взвешенных точек в таком, что
у нас есть [14]
Другими словами, сохраняет барицентры .
Слово «аффинное» как математический термин определено в связи с касательными к кривым в работе Эйлера 1748 года Introductio in analysin infinitorum . [15] Феликс Клейн приписывает термин «аффинное преобразование» Мёбиусу и Гауссу . [10]
В своих приложениях к цифровой обработке изображений аффинные преобразования аналогичны печати на листе резины и растягиванию краев листа параллельно плоскости. Это преобразование перемещает пиксели, требуя интерполяции интенсивности для аппроксимации значения перемещенных пикселей, бикубическая интерполяция является стандартом для преобразований изображений в приложениях обработки изображений. Аффинные преобразования масштабируют, вращают, переводят, зеркально отображают и сдвигают изображения, как показано в следующих примерах: [16]
Аффинные преобразования применимы к процессу регистрации, где два или более изображений выравниваются (регистрируются). Примером регистрации изображений является генерация панорамных изображений, которые являются продуктом нескольких изображений, сшитых вместе.
Аффинное преобразование сохраняет параллельные линии. Однако, преобразования растяжения и сдвига деформируют формы, как показано в следующем примере:
Это пример деформации изображения. Однако аффинные преобразования не облегчают проекцию на криволинейную поверхность или радиальные искажения .
Аффинные преобразования в двух действительных измерениях включают в себя:
Чтобы визуализировать общее аффинное преобразование евклидовой плоскости , возьмем помеченные параллелограммы ABCD и A′B′C′D′ . Какой бы ни был выбор точек, существует аффинное преобразование T плоскости, переводящее A в A′ , и каждую вершину аналогично. Предположим, что мы исключаем вырожденный случай, когда ABCD имеет нулевую площадь , существует единственное такое аффинное преобразование T. Рисуя целую сетку параллелограммов, основанную на ABCD , изображение T ( P ) любой точки P определяется, замечая, что T ( A ) = A′ , T, примененное к отрезку AB, равно A′B′ , T, примененное к отрезку AC, равно A′C′ , и T уважает скалярные кратные векторов, основанных на A . [Если A , E , F коллинеарны, то отношение длины ( AF )/длины ( AE ) равно длине ( A ′ F ′)/длине ( A ′ E ′).] Геометрически T преобразует сетку, основанную на ABCD , в сетку, основанную на A′B′C′D′ .
Аффинные преобразования не учитывают длины и углы; они умножают площадь на постоянный коэффициент.
Заданное значение T может быть либо прямым (соблюдение ориентации), либо косвенным (обратная ориентация), и это может быть определено его влиянием на знаковые области (как определено, например, перекрестным произведением векторов).
Функции с и в и , являются в точности аффинными преобразованиями действительной прямой .
В преобразовании, показанном слева, используется карта, заданная следующим образом:
Преобразование трех угловых точек исходного треугольника (красного цвета) дает три новые точки, которые формируют новый треугольник (синего цвета). Это преобразование наклоняет и перемещает исходный треугольник.
На самом деле, все треугольники связаны друг с другом аффинными преобразованиями. Это также верно для всех параллелограммов, но не для всех четырехугольников.