1. 程式人生 > >CGPoint、CGSize和CGRect,CGPointMake,CGRectMake行內函數。

CGPoint、CGSize和CGRect,CGPointMake,CGRectMake行內函數。

http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGGeometry/Reference/reference.html

CGGeometry類定義幾何元素的結構和操作幾何元素的函式。

1、資料型別:

CGFloat: 浮點值的基本型別
CGPoint: 表示一個二維座標系中的點
CGSize: 表示一個矩形的寬度和高度
CGRect: 表示一個矩形的位置和大小

typedef float CGFloat;// 32-bit
typedef double CGFloat;// 64-bit

struct CGPoint {
    CGFloat x;
    CGFloat y;
};
typedef struct CGPoint CGPoint;

struct CGSize {
    CGFloat width;
    CGFloat height;
};
typedef struct CGSize CGSize;

struct CGRect {
    CGPoint origin;
    CGSize size;
};
typedef struct CGRect CGRect;

注意:CGRect資料結構的高度和寬度可以是負數。例如,一個矩形的原點是[0.0,0.0]和大小是[10.0,10.0]。這個矩形完全等同原點是[10.0,10.0]和大小是[-10.0,-10.0]的矩形。

2、使用值來建立幾何元素的方法

CGPointMake
CGRectMake
CGSizeMake

CGPoint CGPointMake (
   CGFloat x,
   CGFloat y
);

CGSize CGSizeMake (
   CGFloat width,
   CGFloat height
);

CGRect CGRectMake (
   CGFloat x,
   CGFloat y,
   CGFloat width,
   CGFloat height
);
    CGFloat ten=10.0f;
    CGPoint point = CGPointMake(0.0f, 0.0f);
    CGSize size = CGSizeMake(10.0f, 10.0f);
    CGRect rect = CGRectMake(point.x, point.y, size.width, size.height);
    NSLog(@"ten: %f", ten);
    NSLog(@"point: %@", NSStringFromCGPoint(point));
    NSLog(@"size: %@", NSStringFromCGSize(size));
    NSLog(@"rect: %@", NSStringFromCGRect(rect));

相關推薦

CGPointCGSizeCGRectCGPointMake,CGRectMake

http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGGeometry/Reference/reference.html CGGeometry類定義幾何元素的結構和操作幾何元素的函式。 1、資料型別

優秀工程師-IOS開發中的CGFloatCGPointCGSizeCGRect

1、資料型別: CGFloat: 浮點值的基本型別CGPoint: 表示一個二維座標系中的點CGSize: 表示一個矩形的寬度和高度CGRect: 表示一個矩形的位置和大小 typedef float CGFloat;// 32-bit typedef double C

IOS開發中的CGFloatCGPointCGSizeCGRect

http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGGeometry/Reference/reference.html CGGeometry類定義幾何元素的結

針對sql錯誤:“除非另外還指定了 TOP 或 FOR XML否則ORDER BY 子句在檢視派生表子查詢公用表表達式中無效”的原理與解決

執行sql語句: select * from ( select * from tab where ID>20 order by userID desc ) as a order by date desc 邏輯上看著挺對 但是報錯: 除非另

C/C++之巨集普通函式的區別

轉載:https://www.cnblogs.com/ht-927/p/4726570.html C/C++之巨集、行內函數和普通函式的區別 行內函數的執行過程與帶引數巨集定義很相似,但引數的處理不同。帶引數的巨集定義並不對引數進行運算,而是直接替換;行內函數首先是函式,這就意味著函式的很多

C++中的預設引數佔位引數

說明:裡面的示例程式碼有些被註釋掉了,想執行時要去掉註釋 #include "iostream" using namespace std; /**      內聯函數出現的原因:     C++中的const常量可以替代巨

c++中函式的引數傳遞預設實參的理解

1.引數傳遞   1)函式呼叫時,c++中有三種傳遞方法:值傳遞、指標傳遞、引用傳遞。 給函式傳遞引數,遵循變數初始化規則。非引用型別的形參一相應的實參的副本初始化。對(非引用)形參的任何修改僅作用域區域性副本,並不影響實參本身。 為了避免傳遞副本的開銷,可將形參指定為引用型別。對引用形參的

sql:除非另外還指定了 TOP 或 FOR XML否則ORDER BY 子句在檢視派生表子查詢

執行sql語句: select * from ( select * from tab where ID>20 order by userID desc ) as a order by date desc 邏輯上看著挺對 但是報錯: 除非另外還指定了 TO

4【C++】靜態成員變數/靜態成員函式//友元函式/友元類/友元成員函式

一、靜態成員     我們可以使用 static 關鍵字來把類成員定義為靜態的。當我們宣告類的成員為靜態時,這意味著無論建立多少個類的物件,靜態成員都只有一個副本。     靜態成員在類的所有物件中是共享的。如果不存在其他的初始化語句,在建立第一個物件時,所有的靜態資料都會被初始化為

巨集定義記憶體對齊型別轉換

巨集 與 inline的區別 存在的價值,兩者都是文字替換,降低程式跳轉次數,提高效率 1. define 是預處理命令,無法除錯 ,最簡單文字替換,     inline 是編譯期替換,可以除錯, 存在引數型別檢查 2. 使用inline的時候,函式必須定義   直接定義的函式

C++關鍵字名稱空間函式過載預設引數引用

一 .C++入門 1.C++關鍵字 2.名稱空間 3.C++輸入&輸出 4.預設引數 5.函式過載 6.引用 7.行內函數 8.auto關鍵字 9.基於範圍的for迴圈 10.指標空值nullptr&nullptr_t 二. 正文 1.C++關鍵字(C++98)   

Python函式細節:多數量引數強制引數傳遞返回多值匿名/

1. 可接受任意數量引數的函式 接受任意數量的位置引數,使用引數*來解決 # rest是由所有其他位置引數組成的元組 def avg(first, *rest): return ( first + sum(rest) ) / (1+len(rest)) pri

含引數的巨集與函式的區別

含引數的巨集與函式的區別 1、巨集替換不佔執行時間,只佔編譯時間;而函式呼叫則佔執行時間(分配單元、保留現場、值傳遞、返回),每次執行都要載入,所以執行起來比較慢一些。 2、 定義巨集的時候不要在巨集及其引數之間鍵入空格,因為巨集替換的時候會把你不經意打的空格當作巨集的一部分進去

帶參巨集

**巨集可以帶引數(引數是形參),稱為帶參巨集。**巨集和函式各有千秋,各有優劣。總的來說,如果程式碼比較多用函式適合而且不影響效率;但是對於那些只有一兩句話的函式開銷就太大了,適合用帶參巨集。但是用帶參巨集又有缺點:不檢查引數型別。 示例:MAX巨集,三目運算子求2個數中較大的一個 #

巨集

原文:https://blog.csdn.net/haitaolang/article/details/69945338    因為函式呼叫需要開銷(如:保護呼叫者的執行環境、引數傳遞、執行呼叫指令等),所以函式呼叫會帶來程式執行效率的下降,特別是對一些小函式的頻繁呼叫將是程式的效率有很大的降低。

C++:名稱空間預設引數函式過載引用

一.名稱空間           在C/C++中,變數、函式和類都是大量存在的,這些變數、函式和類的名稱都將作用於全域性作用域中,可能會導致很多衝突,所以我們就選擇使用名稱空間。         &nb

巨集

巨集定義和行內函數的區別 1. 巨集定義不是函式,但是使用起來像函式。前處理器用複製巨集程式碼的方式代替函式的呼叫,省去了函式壓棧退棧過程,提高了效率。     行內函數本質上是一個函式,行內函數一般用於函式體的程式碼比較簡單的函式,不能包含複雜的控制語句,while、sw

C++深度解析 分析 inline#define(5)

C++深度解析 行內函數分析(5)   巨集定義 #define A 3 巨集定義會經過前處理器,只是進行文字替換,缺點在於不會進行語法和語義檢查的,僅僅是複製、貼上的過程,編譯器根本不知道型別是什麼。 所以,C++中,當需要某個型別的常量時,可以使用const常量來代

c++——函式特性函式過載簡單解釋

有預設引數值的引數必須在引數表的最右端 正確示例 void fun(int i;int j=1;int k=10); 錯誤示例 void fun(int i;int j=1;int k); 一般編譯器通過率高的是: 宣告寫預設值;定義不寫預設值 如下示例:

c++ constexper函式

行內函數 將函式宣告行內函數, 通常是在編譯器, 將它在呼叫點將函式“內聯展開”。 inline int len(const string& str) { return st