Аффинные преобразования - это преобразования, но преобразования не обязательно должны быть аффинными. Например, сдвиг плоскости не является аффинным, поскольку он не отправляет строки в строки.
Аффинные преобразования по определению являются теми преобразованиями, которые сохраняют отношения расстояний и посылают линии в линии (сохраняя «коллинеарность»). В конечномерной евклидовой геометрии они действуют линейным преобразованием, за которым следует перевод, т.е. x -> Ax + b
, где x
- вектор, A
- линейное преобразование, а b
- вектор.
Аффинные преобразования отлично подходят для изменения систем координат, возможно, из той, которую довольно трудно визуализировать, обратно в обычные координаты.
Аффинные преобразования, с которыми вы, вероятно, столкнетесь на практике, - это переводы, дилатация (то есть масштабирование), вращение и отражение. Например, если вы разрабатываете для iOS, ознакомьтесь с разделами CGAffineTransform
документации для разработчиков. Они объяснят, как создавать аффинные преобразования, используя несколько удобных методов, и как применять их к экземплярам UIView с сообщением -setTransform
.
Наконец, важным моментом в отношении аффинных преобразований является то, что они не являются коммутативными при композиции: применение преобразования T1
с последующим преобразованием T2
в целом отличается от применения T2
, за которым следует T1
. То есть порядок, в котором вы применяете эти вопросы.