博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Swift实际操作]七、常见概念-(2)点CGPoint和变形CGAffineTransform的使用
阅读量:4627 次
发布时间:2019-06-09

本文共 1126 字,大约阅读时间需要 3 分钟。

本文将为你演示点对象CGPoint的使用,其中CG表示来自CoreGraphic(核心图形)这个跨平台框架

首先导入需要使用的两个框架

第一个框架表示界面工具框架
第二个框架表示核心绘图和动画框架

1 import UIKit2 import QuartzCore

定义一个点对象,并设置它的位置为原点。从右侧的结果可以看出,原点的x和y值都是0

let zeroPoint = CGPoint.zero

初始化另一个点对象

var point = CGPoint()

接着查看点对象的坐标值,从右侧的结果可以看出,它的x和y值也都是0

1 point.x2 point.y

从输出的点对象的字符描述可以看出,点对象由大括号包括,并由x和y两个值组合而成

1 point.debugDescription2 //"(0.0,0.0)"

判断两个点对象的坐标值是否相同

point.equalTo(CGPoint(x: 0,y: 0))

初始化另一个点对象,并设置它的坐标值

var secondPoint = CGPoint(x:10,y:10)

通过仿射变换,可以对点对象进行变形。

仿射变换定义在二维空间上,可以完成平移、旋转、缩放等效果。
在此初始化一个仿射变换对象,其值为原始值

let transform: CGAffineTransform = CGAffineTransform.identity

将仿射变换对象在水平和垂直方向上,各平移10点的距离

let moveTransform = transform.translatedBy(x:10,y:10)

然后给点对象应用平移后的仿射变换。

从右侧的输出结果可以看出,点的坐标变为(20,20)

let thirdPoint = secondPoint.applying(moveTransform)

接着对仿射变换对象进行旋转90度,旋转的角度为弧度方式

let rotateTransform = moveTransform.rotated(by: 90 * 3.1415/100.0)

给点对象应用旋转后的仿射变换,从右侧的输出结果可以看出旋转后的点对象的坐标

let fouthPoint = thirdPoint.applying(rotateTransform)

点对象和字符串可以相互转换。

通过系统提供的函数,可以很方便的将格式化后的字符串,转换为点对象

let pointFromString = CGPointFromString("{100,100}")

 

转载于:https://www.cnblogs.com/strengthen/p/9753699.html

你可能感兴趣的文章
(转)Cortex-M3 (NXP LPC1788)之SDRAM操作
查看>>
201671010437 王小倩+词频统计软件项目报告
查看>>
python中的变量,字符串,用户交互,if语句
查看>>
django的模板文件需要为utf-8无bom格式
查看>>
Fedora Linux 18 延期至年底
查看>>
Spring Framework 3.2 RC1 发布
查看>>
基于ios开发点餐系统应用(附带源码)
查看>>
Xenia and Weights(深度优先搜索)
查看>>
文件包含漏洞进阶篇
查看>>
JavaScript的self和this使用小结
查看>>
CSS3.0:透明度 Opacity
查看>>
Arduino Wire.h(IIC/ I2C)语法
查看>>
web高并发的解决方案
查看>>
OC中的NSNumber、NSArray、NSString的常用方法
查看>>
android 用ImageSwitcher+Gallery实现图片浏览效果 分类: ...
查看>>
STM32里面的一些小函数——assert_param,PUTCHAR_PROTOTYPE
查看>>
Java分布式锁的三种实现方案(redis)
查看>>
运行客户端程序报读取配置文件出错的解决方案
查看>>
day 5 - 2 字典(dict)练习
查看>>
微引擎的自定义菜单40063错误解决
查看>>