Matrix 矩陣
Matrix包含另一個3x3的矩陣渣锦,專門用來提供圖形變換配備。提供了如下四種操作translate(平移)?rotate(旋轉(zhuǎn))?scale(縮放)?skew(錯切/傾斜)懊纳。這四種操作都是對3x3矩陣設(shè)值來進行改變。Matrix沒有結(jié)構(gòu)體,必須通過reset()或者set()方法初始化才能夠使用旧乞。pre post set三者的區(qū)別兼砖,pre顧名思義就是最先的奸远,將這個變換插入到隊列最前面,post 則是將這次變換插入到隊列的最后面讽挟,set是將隊列清空懒叛,然后再插入到隊列當(dāng)中。
Matrix?
除了平移變換之外拆檬,其他三種操作都是有圍繞著某個中心點進行的,如果沒有指定則默認(rèn)是坐標(biāo)原點妥凳。
平移變換(trans):假設(shè)點P(x,y)竟贯,平移到點P1(x1,y1)其中x的偏移量^x,y的偏移量是^y為;用舉證表示:
對應(yīng)的就是MTRANS_X =^X,MTRANS_Y=^Y
縮放變換(scale):假設(shè)點P(x,y),將其x放大a倍逝钥,將y放大b倍屑那,變成P1(ax,by);也就是MSCALE_X=a MSCALE_Y=b;其矩陣式:
旋轉(zhuǎn)變換(ratote):假定有一個點P(x,y),相對坐標(biāo)原點順時針旋轉(zhuǎn)a度艘款,同時假定點p距離原點距離r持际,x = rcos(b),y = rsin(b), (b是點p與原點之間的直線和x軸的夾角) 變換后點P1的坐標(biāo)則是x = rcos(a+b),y= rsin(a+b),處理后x= rcos(a)cos(b) - rsin(b)sin(a)=xcos(b) -ysin(b) y=rsin(a)cos(b) + rsin(b)cos(a) =xsin(a) + ycos(a);如果用矩陣表示就是: