Transformacje afiniczne są transformacjami, ale transformacje nie muszą być afiniczne. Na przykład ścinanie płaszczyzny nie jest afiniczne, ponieważ nie przesyła linii do linii.
Transformacje afiniczne to z definicji przekształcenia, które zachowują proporcje odległości i przesyłają linie do linii (zachowując "współliniowy"). W skończonej wymiarowej geometrii euklidesowej działają one przez liniową transformację, a następnie translację, tj. x -> Ax + b
, gdzie x
jest wektorem, A
jest transformacją liniową, a b
jest wektorem.
Transformacje afiniczne świetnie nadają się do zmiany układów współrzędnych, być może z dość trudnych do wizualizacji z powrotem do zwykłych współrzędnych.
Transformacje afiniczne, które można napotkać w praktyce, to tłumaczenia, rozszerzanie (skalowanie), rotacja i odbicie. Jeśli tworzysz na iOS, powiedz, sprawdź sekcje dokumentacji dewelopera CGAffineTransform
. Wyjaśnią one, w jaki sposób utworzyć transformacje typu Affine za pomocą kilku metod wygody i jak zastosować je w instancjach UIView z komunikatem -setTransform
.
Wreszcie ważnym punktem o przekształceniach afinicznych jest to, że oni nie są przemienne pod składzie: Zastosowanie transformaty T1
następnie przekształcić T2
jest na ogół różni się od stosowania T2
następnie T1
. To jest kolejność, w jakiej stosuje się te kwestie.
Jest to podobne do tego pytania: http://stackoverflow.com/questions/567829/catransform3d-vs-cgaffinetransform –