CGAffineTransform和CATransform3D

前言

顧名思義衷咽,就是對視圖進行變換的一組函數(shù)功能,其中前者是對視圖進行2D變換污呼,后者是進行3D變換,而這都是屬于core Graphics層的功能烫扼,并且主要作用于CALayer層曙求;
視圖的變換主要包括平移,縮放映企,旋轉悟狱,其核心是視圖上的點和矩陣相乘之后產生的結果;

CGAffineTransform

首先來看CGAffineTransform堰氓,2D變換挤渐,即平面變換;其中平面上的點可以表示成一個1*3的矩陣[x , y , 1]双絮,來看看CGAffineTransform的結構體組成

struct CGAffineTransform {
 CGFloat a, b, c, d;
 CGFloat tx, ty;
};

CGAffineTransform其實表示成一個3*3的矩陣就是:
1.jpg.jpeg

由于變換是矩陣相乘浴麻,所以我們可以得到一個公式
2.jpg.jpeg
其中等號前面就是變換后的結果得问,在線性代數(shù)中我們知道上述兩個矩陣相乘的結果如下:
x’ = ax + cy + tx; y’ = bx + dy + ty;

若c = b = 0時,a會影響x方向的縮放软免,d會影響y方向的縮放宫纬,tx會影響x方向的位移,ty會影響y方向的位移膏萧;
當b和c不等于0時漓骚,可以看到其在另一方向上發(fā)生了變化,即發(fā)生了旋轉榛泛;

CGAffineTransform中的函數(shù)

CGAffineTransformIdentity:

其實相當于矩陣!即相乘之后并沒有發(fā)生任何變化
3.jpg.jpeg
CGAffinetransformMakeTranslation相當于合成一個矩陣為
4.jpg.jpeg

CGAffineTransformMakeScale 相當于合成一個矩陣為
5.jpg.jpeg
CGAffineTransformMakeRotation相當于合成一個矩陣為
6.jpg.jpeg
CGAffineTransformMake:可以在三個方向上同時做處理蝌蹂,具體的處理結果可以看前面的講解;

CATransform3D

在2D的基礎上多加了z軸上的變換曹锨,即三維空間上的變換

struct CATransform3D
{
  CGFloat m11, m12, m13, m14;
  CGFloat m21, m22, m23, m24;
  CGFloat m31, m32, m33, m34;
  CGFloat m41, m42, m43, m44;
};

我們可以看到是一個4 * 4的矩陣孤个,這個時候可以將我們的視圖看成4*1的矩陣,相乘即沛简,

1.png.png
可以得出:
x’ = m11x + m21y + m31z + m41;
y’ = m12x + m22y + m32z + m42;
z’ = m13x + m23y + m33z + m43;
根據(jù)以上的結果可以得出如下結論:
m11控制x方向上的縮放齐鲤,m41控制x方向上的平移;
m22控制y方向上的縮放覆享,m42控制y方向上的平移佳遂;
m33控制z方向上的縮放,m43控制z方形上的平移撒顿;
和2D變換一樣m21,m31,m12,m32,m13,m23控制旋轉丑罪,那么他們都是怎么影響哪一個軸上的變化呢,這里有一片文章凤壁,從中可以得出:
2.png.png
再對比之前矩陣的圖可以看出:
m32和m23共同影響x軸的旋轉吩屹;
m13和m31共同影響y軸的旋轉;
m12和m21共同影響z軸的旋轉拧抖;
同時煤搜,CATransform3D也有函數(shù),同2D一樣唧席,這里就不多做闡述了~~
其中m34為透視效果擦盾,其他幾個暫不得知~~
最后,希望本篇文章對大家會有幫助淌哟。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末迹卢,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子徒仓,更是在濱河造成了極大的恐慌腐碱,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掉弛,死亡現(xiàn)場離奇詭異症见,居然都是意外死亡喂走,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門谋作,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芋肠,“玉大人,你說我怎么就攤上這事遵蚜∫嫡ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵谬晕,是天一觀的道長。 經常有香客問我携取,道長攒钳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任雷滋,我火速辦了婚禮不撑,結果婚禮上,老公的妹妹穿的比我還像新娘晤斩。我一直安慰自己焕檬,他們只是感情好,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布澳泵。 她就那樣靜靜地躺著实愚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪兔辅。 梳的紋絲不亂的頭發(fā)上腊敲,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機與錄音维苔,去河邊找鬼碰辅。 笑死,一個胖子當著我的面吹牛介时,可吹牛的內容都是我干的没宾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼沸柔,長吁一口氣:“原來是場噩夢啊……” “哼循衰!你這毒婦竟也來了?” 一聲冷哼從身側響起勉失,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤羹蚣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后乱凿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體顽素,經...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡咽弦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了胁出。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片型型。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖全蝶,靈堂內的尸體忽然破棺而出闹蒜,到底是詐尸還是另有隱情,我是刑警寧澤抑淫,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布绷落,位于F島的核電站,受9級特大地震影響始苇,放射性物質發(fā)生泄漏砌烁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一催式、第九天 我趴在偏房一處隱蔽的房頂上張望函喉。 院中可真熱鬧,春花似錦荣月、人聲如沸管呵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捐下。三九已至,卻和暖如春堂氯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背啤握。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蹲蒲,地道東北人侵贵。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓卡睦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親恕齐。 傳聞我的和親對象是個殘疾皇子瞬逊,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內容