QuartzCore 之 CATransform3D.h

我們先來看一下官方提供的CATransform3D.h 類里面的內(nèi)容沙峻。

CATransform3D 結(jié)構(gòu)體

CATransform3D.h 開頭我們看到的是CATransform3D的結(jié)構(gòu)體表示的一個(gè)矩陣暖夭。

分別表示:

m11(x縮放), m12(y切變), m13(旋轉(zhuǎn)), m14();

m21(x切變), m22(y縮放), m23(), m24();

m31(旋轉(zhuǎn)), m32(), m33(), m34(透視效果锹杈,離視角近的地方放大撵孤,離視角遠(yuǎn)的地方縮小。正直/負(fù)值都有意義);

CGFloat m41(x平移), m42(y平移), m43(z平移), m44();

矩陣乘法計(jì)算

注意:

若m11 == m22竭望,整體比例變換邪码,

若m33>1,圖形整體縮小咬清,

若0 < m33 < 1,圖形整體放大闭专;

若 s < 0,發(fā)生關(guān)于原點(diǎn)的對稱等比變換旧烧。


接下來就是官方提供的關(guān)于 CATransform3D 的一些方法:


正常狀態(tài)

CATransform3DIdentity 是4x4單位矩陣影钉,該矩陣沒有縮放,旋轉(zhuǎn)掘剪,歪斜平委,透視。該矩陣應(yīng)用到圖層上夺谁,就是設(shè)置默認(rèn)值


判斷是不是單位形變

CATransform3DIsIdentity ? ?返回bool? ? 判斷是不是單位形變?


判斷兩個(gè)形變是否相同

CATransform3DEqualToIdentity 返回bool 判斷兩個(gè)形變是否相同


移動位置

CATransform3DMakeTranslation

tx:X軸偏移位置廉赔,往下為正數(shù)。(x軸方向?yàn)樯舷拢?br>

ty:Y軸偏移位置予权,往右為正數(shù)昂勉。 (y軸方向?yàn)樽笥遥?/p>

tz:Z軸偏移位置,往外為正數(shù)扫腺。(z軸方向?yàn)槔锿猓饩褪钦f指向你的方向?yàn)檎?/p>

具體來說tz的值越大村象,圖層就越向外靠近笆环,有3D效果


縮放

CATransform3DMakeScale

sx:X軸縮放,代表一個(gè)縮放比例厚者,一般都是 0 --- 1 之間的數(shù)字躁劣。

sy:Y軸縮放。

sz:整體比例變換時(shí)库菲,也就是m11(sx)== m22(sy)時(shí)账忘,若m33(sz)> 1,圖形整體縮形跤睢鳖擒;若0<1,圖形整體放大烫止;若m33(sz)<0蒋荚,發(fā)生關(guān)于原點(diǎn)的對稱等比變換。

當(dāng)sx = 1馆蠕,sy = 1時(shí)期升。如圖:

當(dāng)sx = 0.5惊奇,sy = 0.5時(shí)。如圖:


旋轉(zhuǎn)效果

CATransform3DMakeRotation

angle:旋轉(zhuǎn)的弧度播赁,所以要把角度轉(zhuǎn)換成弧度:角度 * M_PI / 180颂郎。

x:向X軸方向旋轉(zhuǎn)。值范圍-1 --- 1之間

y:向Y軸方向旋轉(zhuǎn)容为。值范圍-1 --- 1之間

z:向Z軸方向旋轉(zhuǎn)祖秒。值范圍-1 --- 1之間

ps:?向 X軸,Y軸都旋轉(zhuǎn)舟奠,就是沿著對角線旋轉(zhuǎn)竭缝。


?沼瘫?抬纸?

CATransform3DTranslate

t:就是上一個(gè)函數(shù)。其他的都一樣耿戚。CATransform3DMakeTranslation

就可以理解為:函數(shù)的疊加湿故,效果的疊加。

funcCATransform3DTranslate(t:CATransform3D, _ tx:CGFloat, _ ty:CGFloat, _ tz:CGFloat) ->CATransform3D

Translate 't' by '(tx, ty, tz)' and return the result: t' = translate(tx, ty, tz) * t.

上邊是官方的解釋膜蛔,根據(jù)官方的解釋就是在原有的 t 的基礎(chǔ)上進(jìn)行形變坛猪,返回行遍之后的 t


CATransform3DScale

t:就是上一個(gè)函數(shù)。其他的都一樣皂股。CATransform3DMakeScale

就可以理解為:函數(shù)的疊加墅茉,效果的疊加。


旋轉(zhuǎn)

CATransform3DRotate

t:就是上一個(gè)函數(shù)呜呐。其他的都一樣就斤。CATransform3DMakeRotation

就可以理解為:函數(shù)的疊加,效果的疊加蘑辑。




翻轉(zhuǎn)效果





返回 bool ?判斷是否仿射

返回 bool? 判斷是否仿射


放射效果

就是把一個(gè) CATransform3D 對象轉(zhuǎn)換成一個(gè) CGAffineTransform 對象洋机。

也就是把 CATransform3D 矩陣 轉(zhuǎn)換成 CGAffineTransform 矩陣

變換函數(shù)同時(shí)提供了可以比較一個(gè)變換矩陣是否是單位矩陣,或者兩個(gè)矩陣是否相等。


除了這些

也可以直接通過修改數(shù)據(jù)結(jié)構(gòu)和鍵值來設(shè)置變換效果洋魂。通過修改矩陣中不同的值來達(dá)到3D變換效果

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绷旗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子副砍,更是在濱河造成了極大的恐慌衔肢,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件址晕,死亡現(xiàn)場離奇詭異膀懈,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)谨垃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門启搂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來硼控,“玉大人,你說我怎么就攤上這事胳赌±魏常” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵疑苫,是天一觀的道長熏版。 經(jīng)常有香客問我,道長捍掺,這世上最難降的妖魔是什么撼短? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮挺勿,結(jié)果婚禮上曲横,老公的妹妹穿的比我還像新娘。我一直安慰自己不瓶,他們只是感情好禾嫉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蚊丐,像睡著了一般熙参。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上麦备,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天孽椰,我揣著相機(jī)與錄音,去河邊找鬼泥兰。 笑死弄屡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鞋诗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼迈嘹,長吁一口氣:“原來是場噩夢啊……” “哼削彬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起秀仲,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤融痛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后神僵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雁刷,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年保礼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沛励。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片责语。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖目派,靈堂內(nèi)的尸體忽然破棺而出坤候,到底是詐尸還是另有隱情,我是刑警寧澤企蹭,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布白筹,位于F島的核電站,受9級特大地震影響谅摄,放射性物質(zhì)發(fā)生泄漏徒河。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一送漠、第九天 我趴在偏房一處隱蔽的房頂上張望顽照。 院中可真熱鬧,春花似錦螺男、人聲如沸棒厘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奢人。三九已至,卻和暖如春淆院,著一層夾襖步出監(jiān)牢的瞬間何乎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工土辩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留支救,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓拷淘,卻偏偏與公主長得像各墨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子启涯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 圖層的幾個(gè)坐標(biāo)系 對于iOS來說贬堵,坐標(biāo)系的(0,0)點(diǎn)在左上角结洼,就是越往下黎做,Y值越大。越往右松忍,X值越大蒸殿。 一個(gè)圖層...
    LeeMystique閱讀 16,684評論 1 53
  • 關(guān)于圖層的幾個(gè)坐標(biāo)系。對于ios來說,坐標(biāo)系的(0宏所,0)點(diǎn)在左上角酥艳,就是越往下,Y值越大楣铁。越往右玖雁,X值越大。一個(gè)圖...
    petry閱讀 1,895評論 0 3
  • >*很不幸盖腕,沒人能告訴你母體是什么赫冬,你只能自己體會* --駭客帝國 在第四章“可視效果”中,我們研究了一些增強(qiáng)圖層...
    夜空下最亮的亮點(diǎn)閱讀 1,658評論 0 2
  • CoreAnimation之CALayer基礎(chǔ) 1. CGAffineTransform CGAffineTran...
    abb266389fd0閱讀 1,172評論 2 17
  • 我突然想想溃列,今年你生日劲厌,是第一個(gè)我跟你在一起的生日。 我該怎么做听隐? 后來补鼻,想想把最好的自己送給你,就是最好的禮物雅任。...
    減肥的女孩閱讀 196評論 0 1