• [Swift实际操作]七、常见概念-(2)点CGPoint和变形CGAffineTransform的使用


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

    首先导入需要使用的两个框架
    第一个框架表示界面工具框架
    第二个框架表示核心绘图和动画框架

    1 import UIKit
    2 import QuartzCore

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

    let zeroPoint = CGPoint.zero

    初始化另一个点对象

    var point = CGPoint()

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

    1 point.x
    2 point.y

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

    1 point.debugDescription
    2 //"(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}")
  • 相关阅读:
    类与类之间的几种关系
    spring之BeanFactory
    java打开本地应用程序
    java笔记六:线程间的协调
    继承与组合的优缺点
    适配器模式之对象适配器
    java笔记三:List接口
    java笔记二:final关键字用法总结
    设计模式之命令模式
    利用栈实现迷宫的求解
  • 原文地址:https://www.cnblogs.com/strengthen/p/9753699.html
Copyright © 2020-2023  润新知