IOS中获取两个矩形的相交区域

获取两个矩形的相交区域

//definiton a rect
CGRect rect1 = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f);

//获取2个矩形的相交区域
rect = CGRectIntersection(rect, bounds);

//create smaller or bigger rect(have same center)
CGRect rect2 = CGRectInset(rect, 32.0f, 32.0f);

//CGRect and NSString
NSString *string = NSStringFromCGRect(rect1);
rect1 = CGRectFromString(string);

//zero
CGRectZero

//full screen rect
[[UIScreen mainScreen] applicationFrame];

常用函数:
CGRectContainsPoint(); //点是否在矩形中
CGRectContainsRect(); //返回是否第一个矩形包含了第二长方形
CGRectIntersectsRect(); //返回两个矩形是否相交
CGRectIntersection(); //两个矩形的相交
CGPointEqualToPoint(); //两个点是否是一个点
CGSizeEqualToSize(); //两个size是否一样

swift 中Rect判断

你可以将区域对象,看作是点对象和尺寸对象的组合

首先导入需要使用到底界面工具框架

import UIKit
然后初始化一个区域对象,
它的原点位于(0,0),宽度和高度都是100

let rect = CGRect(x: 0,y: 0,width: 100,height: 100)
从输出的区域对象的字符描述可以看出,
区域对象由大括号包括,并由x、y、宽度和高度四个值组合而成

rect.debugDescription
区域对象可以由点对象和尺寸对象组合而成,
首先定义一个位于原点的点对象

let ori = CGPoint.zero
接着初始化一个宽度和高度都是100的尺寸对象

let si = CGSize(width: 100,height: 100)
然后使用刚刚创建的点对象和尺寸对象,初始化一个区域对象,
该初始化方法包含原点和尺寸两个参数

let secondRect = CGRect(origin: ori,size: si)
查询区域对象的原点坐标

1 secondRect.origin.x
2 secondRect.origin.y
查询区域对象的宽度和高度

1 secondRect.size.width
2 secondRect.size.height
也可以直接获取区域对象的宽度和高度属性

1 secondRect.width
2 secondRect.height
通过水平和垂直方向上的最小值和最大值,
可以查询区域对象左上角和右下角的坐标

1 secondRect.minX
2 secondRect.maxX
3 secondRect.minY
4 secondRect.maxY
判断该区域是否包含某个指定的点

secondRect.contains(CGPoint(x: 10,y: 10))
判断该区域是否包含某个指定的区域

secondRect.contains(CGRect(x: 0,y: 0,width: 50,height: 50))
判断该区域是否和另一个区域相等

secondRect.equalTo(rect)
获取另一个区域对象,该区域对象位于原区域对象的内部,
并且和原区域对象的四周保持10点的距离

secondRect.insetBy(dx: 10,dy: 10)
获得两个区域相交的区域,并观测右侧输出的结果

secondRect.intersection(CGRect(x: 40,y: 40,width: 100,height: 20))
判断两个区域是否相交

secondRect.intersects(CGRect(x: 80,y: 0,width: 100,height: 100))
获得一个区域对象,在水平和垂直方向各偏移10点之后的区域

secondRect.offsetBy(dx: 10,dy: 10)
获得两个区域合并之后的区域

secondRect.union(CGRect(x: 50,y: 50,width: 100,height: 100))
和点对象尺寸对象相同,同样可以将一个格式化的字符串,转换为区域对象

CGRectFromString("{{0,0},{100,100}}")
技巧:将游戏内的二次下载推迟到玩家完成游戏的早期部分之后。为必须进行的应用内下载设计进度条和一些视觉效果,用于吸引玩家注意。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值