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

相關文章
相關標籤/搜索