天天看點

iOS 仿射變換和3D變換

uiview的transform屬性是一個cgaffinetransform類型,用于在二維空間做旋轉,縮放和平移。cgaffinetransform是一個可以和二維空間向量(例如cgpoint)做乘法的3x2的矩陣:

iOS 仿射變換和3D變換

paste_image.png

當對uiview應用變換矩陣,uiview圖層矩形内的每一個點都被相應地做變換,進而形成一個新的四邊形的形狀。cgaffinetransform中的“仿射”的意思是無論變換矩陣用什麼值,圖層中平行的兩條線在變換之後任然保持平行.

cgaffinetransformidentity

iOS 仿射變換和3D變換

圖中,灰色為舊圖,藍色為變化後的新圖.

<a href="https://zsisme.gitbooks.io/ios-/content/chapter5/affine-fransforms.html" target="_blank">https://zsisme.gitbooks.io/ios-/content/chapter5/affine-fransforms.html</a>

catransform3d可以讓視圖在3d空間内移動或者旋轉.和cgaffinetransform類似,catransform3d也是一個矩陣,但是和2x3的矩陣不同,catransform3d是一個可以在3維空間内做變換的4x4的矩陣.

這裡講的很好:

<a href="https://zsisme.gitbooks.io/ios-/content/chapter5/3d-transform.html" target="_blank">https://zsisme.gitbooks.io/ios-/content/chapter5/3d-transform.html</a>

<a href="https://tech.imdada.cn/2016/06/21/ios-core-animation/" target="_blank">https://tech.imdada.cn/2016/06/21/ios-core-animation/</a>

繼續閱讀