iOS的仿射的一点理解

Posted FarmGuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS的仿射的一点理解相关的知识,希望对你有一定的参考价值。

1 CGAffineTransform

定义如下:

struct CGAffineTransform 
  CGFloat a, b, c, d;
  CGFloat tx, ty;
;

这只定义了部分数据,这个其实是一个3*3的矩阵,最后一列永远是[0,0,1]。

/* Return a transform which translates by `(tx, ty)':
     t' = [ 1 0 0 1 tx ty ] */
CGAffineTransform CGAffineTransformMakeTranslation(CGFloat tx,
  CGFloat ty);

x‘ = x + tx,y’= y = ty,这样实现了偏移。

/* Return a transform which scales by `(sx, sy)':
     t' = [ sx 0 0 sy 0 0 ] */

CG_EXTERN CGAffineTransform CGAffineTransformMakeScale(CGFloat sx, CGFloat sy);

x’=xsx+ysy。这样就实现了缩放。

/* Return a transform which rotates by `angle' radians:
     t' = [ cos(angle) sin(angle) -sin(angle) cos(angle) 0 0 ] */

CG_EXTERN CGAffineTransform CGAffineTransformMakeRotation(CGFloat angle));

以上是关于iOS的仿射的一点理解的主要内容,如果未能解决你的问题,请参考以下文章

iOS的仿射的一点理解

对 OpenCV 中 getRotationMatrix2D 函数和仿射变换的一点理解

【转】仿射变换及其变换矩阵的理解

OpenGL基础仿射变换原理解析

对高可用系统的一点理解

iOS 代理