Matrix 矩陣
Matrix包含另一個(gè)3x3的矩陣,專門用來提供圖形變換配備。提供了如下四種操作translate(平移)?rotate(旋轉(zhuǎn))?scale(縮放)?skew(錯(cuò)切/傾斜)。這四種操作都是對3x3矩陣設(shè)值來進(jìn)行改變。Matrix沒有結(jié)構(gòu)體,必須通過reset()或者set()方法初始化才能夠使用。pre post set三者的區(qū)別,pre顧名思義就是最先的,將這個(gè)變換插入到隊(duì)列最前面,post 則是將這次變換插入到隊(duì)列的最后面,set是將隊(duì)列清空,然后再插入到隊(duì)列當(dāng)中。
Matrix?

除了平移變換之外,其他三種操作都是有圍繞著某個(gè)中心點(diǎn)進(jìn)行的,如果沒有指定則默認(rèn)是坐標(biāo)原點(diǎn)。
平移變換(trans):假設(shè)點(diǎn)P(x,y),平移到點(diǎn)P1(x1,y1)其中x的偏移量^x,y的偏移量是^y為;用舉證表示:

對應(yīng)的就是MTRANS_X =^X,MTRANS_Y=^Y
縮放變換(scale):假設(shè)點(diǎn)P(x,y),將其x放大a倍,將y放大b倍,變成P1(ax,by);也就是MSCALE_X=a MSCALE_Y=b;其矩陣式:

旋轉(zhuǎn)變換(ratote):假定有一個(gè)點(diǎn)P(x,y),相對坐標(biāo)原點(diǎn)順時(shí)針旋轉(zhuǎn)a度,同時(shí)假定點(diǎn)p距離原點(diǎn)距離r,x = rcos(b),y = rsin(b), (b是點(diǎn)p與原點(diǎn)之間的直線和x軸的夾角) 變換后點(diǎn)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);如果用矩陣表示就是:
