Transform变换
来源:互联网 发布:用友软件版本号 编辑:程序博客网 时间:2024/06/10 02:42
我们知道在UIKit开发中UIView有一个transform属性用于控件的形变,其实在绘图中我们也经常用到图形形变,这个时候可以借助图形上下文的形变方法来完成。在弄清形变之前我们要清楚图形上下文的坐标原点,因为无论是位移还是旋转都是相对于坐标原点进行的。其实Quartz2D的坐标系同UIKit并不一样,它的坐标原点在屏幕左下方,但是为了统一编程方式,UIKit对其进行了转换,坐标原点统一在屏幕左上角。注意在设置图形上下文形变之前一定要注意保存上下文的初始状态,在使用完之后进行恢复。否则在处理多个图形形变的时候很容易弄不清楚到底是基于怎样的坐标系进行绘图,容易找不到原点(做过html5canvas绘图的朋友对这一点应该很熟悉,在html5中绘图也经常进行状态保存和恢复)
UIView的transform
一个CGAffineTransform类型的数据,默认值为CGAffineTransformIdentity。
UIView的transform指示其在屏幕上的呈现方式,与Quartz的变换原点为左上角或左下角不同,UIView变换的原点为center或layer的anchorPoint
CGAffineTransformMakeXXX 基于屏幕原点进行变换
CGAffineTransformXXX 基于当前控件原点进行变换
CGAffineTransformInvert 返回Transformation的反向
CGAffineTransformConcat 合并两个Transformation
检测一个Transformation
CGAffineTransformIsIdentity //检测一个Transformation是不是恒等变换,也就是说不变
CGAffineTransformEqualToTransform //检测两个Transformation是否相等。
1、CGAffineTransform CGAffineTransformMakeRotation ( CGFloat angle);//M_PI 逆时钟180、M_PI_2顺时90
在这里可以看到参数并不是一个角度,但是它是把参数作为一个弧度,然后把弧度再转换为角度来处理,其结果就可能是将一个图片视图旋转了多少度。
2、CGAffineTransform CGAffineTransformMakeScale (CGFloat sx, CGFloat sy);
缩放比例,假设是一个图片视图引用了这个变换,那么图片的宽度就会变为 width*sx ,对应高度变为 hight* sy。
3、CGAffineTransform CGAffineTransformMakeTranslation (CGFloat tx,CGFloat ty);
这个就比较好理解了,假设是一个视图,那么它的起始位置 x 会加上tx , y 会加上 ty
CALayer的transform属性
CALayer的transform属性是是个CATransform3D类型的数据。同UIView的transform相同,CATransform3D也是相对于中心点的变换矩阵。
- Transform变换
- Transform变换
- Transform(变换)
- 变换 transform
- Schwartzian Transform(施瓦茨变换)
- CSS3之变换Transform
- Hotelling transform,霍特林变换
- 仿射变换transform
- Unity3d变换组件(Transform)
- Transform.TransformDirection 变换方向
- SVG transform坐标变换
- CSS3之变换Transform
- -webkit-transform(元素变换)
- transform 3D 变换
- 霍夫变换(Hough Transform)
- Transform空间坐标变换节点
- 霍夫变换(Hough Transform)
- 霍夫变换(Hough Transform)
- Coding iOS Android 客户端双箭齐发上线各大应用市场
- Http错误代码含义
- iOS项目目录结构组织的一些总结
- Coding 即将在 segmenfault 发布一系列官方技术博文 !
- Android Activity的启动模式
- Transform变换
- Coding 官方推出网站服务状态页面啦!
- Coffee + mocha + Travis-CI 单元测试与覆盖率报告
- Activity通过广播进行传值
- cookies
- ubutnu14.04默认登陆界面换个自己喜欢的背景图
- OpenGl第三章后续,纹理,绘制图片,文字
- Android USB gadget probe流程
- cplusplus思考与实践