IOS Dev Intro - CGAffineTransform
2016-07-25 13:56
246 查看
CGAffineTransform
1. define
typedef struct CGAffineTransform CGAffineTransform;
struct CGAffineTransform {
CGFloat a, b, c, d;
CGFloat tx, ty;
};
2. math form
CGAffineTransform =
[a b 0]
[c d 0]
[tx ty 1]
Point pt = [x, y, 1];
pt' = pt * t
=>
x = a * x + c * y + tx;
y = b * x + d * y + ty;
z = 0 * x + 0 * y + 1 * 1 = 1;
In summary, CGAffineTransform is row-majored matrix,
which is alike to Direct3D
3. transform combine
CGAffineTransform t = CGAffineTransformIsIdentity
t = [1 0 0 1 0 0]
CGAffineTransform CGAffineTransformRotate ( CGAffineTransform t, CGFloat angle );
t = CGAffineTransformRotate(t, -M_PI/2);
rt = [cosu sinu 0] [1 0 0]
[-sinu cosu 0] * [0 1 0]
[0 0 1] [0 0 1]
1. define
typedef struct CGAffineTransform CGAffineTransform;
struct CGAffineTransform {
CGFloat a, b, c, d;
CGFloat tx, ty;
};
2. math form
CGAffineTransform =
[a b 0]
[c d 0]
[tx ty 1]
Point pt = [x, y, 1];
pt' = pt * t
=>
x = a * x + c * y + tx;
y = b * x + d * y + ty;
z = 0 * x + 0 * y + 1 * 1 = 1;
In summary, CGAffineTransform is row-majored matrix,
which is alike to Direct3D
3. transform combine
CGAffineTransform t = CGAffineTransformIsIdentity
t = [1 0 0 1 0 0]
CGAffineTransform CGAffineTransformRotate ( CGAffineTransform t, CGFloat angle );
t = CGAffineTransformRotate(t, -M_PI/2);
rt = [cosu sinu 0] [1 0 0]
[-sinu cosu 0] * [0 1 0]
[0 0 1] [0 0 1]
相关文章推荐
- Cisco IOS版本命名规则
- iOS人脸检测
- ios developer tiny share-20160725
- ios developer tiny share-20160725
- iOS缓存
- iOS TableView给力动画的简单实现(一)
- 用xib拖scrollView
- Core Spotlight和深度链接结合使用(上)
- iOS中集成ijkplayer视频直播框架
- iOS runLoop 用法详解3
- iOS RunLoop 的 Mode
- iOS编程(双语版) - 视图 - 基本概念
- iOS 自定义cell改变其中子控件frame值
- iOS开发之调试技巧Xcode7中你一定要知道的炸裂调试神技、Address Sanitizer EXC_BAD_ACCESS
- iOS JS交互
- 仿ios滑动边缘返回,你用过SwipeBackActivity,是否用过SwipeBackFragment呢?
- iOS errorcode为-1011 问题及解答
- iOS 下加载本地HTML/js/css/image 等路径问题
- iOS-widget-Today 扩展
- iOS 开发中遇到的常见问题