CGGeometry基础

一.基础数据结构

CGGeometry参考定义几何结构和功能,操做简单。ide

数据结构中的一个点CGPoint表明在一个二维坐标系统。函数

数据结构的位置和尺寸CGRect表明的一个长方形。ui

数据结构的尺寸CGSize表明宽度和高度。.net

点 CGPoint, 尺寸CGSize,矢量CGVector,矩形CGRectblog

CGVector CGVectorMake(CGFloat dx, CGFloat dy);//表示在x,y俩个维度的变化量rem

二. 修改矩形it

CGRectDivideio

CGRect  CGRectInset(CGRect rect,CGFloat dx,CGFloat dy)基础

返回一个比原矩形大或小的矩形,可是中心点是相同的

CGRect CGRectIntegral(CGRect A)

将矩形A的值转变成整数,获得一个最小的矩形,

CGRect CGRectIntersection:(CGRect A,CGRect B)

获取两个矩形相交处所的矩形,没有相交返回NULL,用CGRectIsNull来检测

CGRectOffset

CGRectStandardize

CGRectUnion

1. CGRect CGRectStandardize(CGRect rect)

 矩形的宽或者高小于0时才有改变。 把矩形的负数的宽高转化为正数。

2.CGRect CGRectInset(CGRect rect, CGFloat dx, CGFloat dy)

 矩形rect进行内嵌后获得的矩形  

 返回一个CGRect,x为本来的x-dx y为本来的y-dy  width为本来的width-2dx  height为本来的height-2dy

建立一个内嵌的矩形,中心和rect参数的中心同样,dx,dy对应内嵌的宽度和高度

好比:CGRect rect= CGRectInset(CGRectMake(0, 0, 100, 100), 10, 10);

会建立出的rect为(10,10,80,80),dx,dy也能够为负值,则是建立出来的矩形会大于原矩形范围。

3.CGRect CGRectOffset(CGRect rect, CGFloat dx, CGFloat dy)

矩形rect进行偏移后获得的矩形 

CGRect向x或y方向便宜  x>0向右偏 x<0向左 y>0向下偏 y<0向上   返回一个矩形,偏移量相对于rect,只改变矩形原点origin。

4.void CGRectDivide(CGRect rect, CGRect *  slice,

                            CGRect *  remainder, CGFloat amount, CGRectEdge edge)

// 把矩形rect进行分割 

/*

 这个函数用来分割矩形,参数rect是源矩形,slice和remainder是分割后的两部分矩形,amount是分割线,edge是分割选项。

 注意:1>、edge是一个宏,定义了分割的方式以下:

 typedef CF_ENUM(uint32_t, CGRectEdge) {

 //从x的最小处进行垂直分割

 CGRectMinXEdge,

 //从y的最小处进行水平分割

 CGRectMinYEdge,

 //从x最大处进行垂直分割

 CGRectMaxXEdge,

 //从y最大处进行水平分割

 CGRectMaxYEdge

 };

 2>、slice和remainder是地址。

 3>、举例以下,将会分割出两个矩形分别为(40,0,60,100)(0,0,40,100);

 CGRect rect = CGRectMake(0, 0, 100, 100);

 CGRect slice ;

 CGRect remainder;

 CGRectDivide(rect, &slice, &remainder, 60, CGRectMaxXEdge);

 */

5. CGRectIntegral(CGRect rect)

 把矩形的宽高改成整数。根据一个矩形,返回四个参数都是整数的矩形

6.CGRect CGRectUnion(CGRect r1, CGRect r2)    并集

7.CGRect CGRectIntersection(CGRect r1, CGRect r2)     交集

三.其余

bool CGRectIsEmpty(CGRect rect)// 矩形的宽或者高为0 零矩形

bool CGRectIsNull(CGRect rect)// 空矩形,eg:俩个矩形相交可能会获得空矩形

bool CGRectIsInfinite(CGRect rect)// 矩形是否无穷大

CFDictionaryRef  CGSizeCreateDictionaryRepresentation(CGSize size)// //把CGSize转换为不可变字典

 bool CGSizeMakeWithDictionaryRepresentation(

                                                      CFDictionaryRef __nullable dict, CGSize * __nullable size)  //把字典转换为CGSize,存在size里,成功返回true 其余false

参考:http://blog.csdn.net/teamlet/article/details/49309971

相关文章
相关标签/搜索