Matrix 矩阵
Matrix包含另一个3x3的矩阵,专门用来提供图形变换配备。提供了如下四种操作translate(平移) rotate(旋转) scale(缩放) skew(错切/倾斜)。这四种操作都是对3x3矩阵设值来进行改变。Matrix没有结构体,必须通过reset()或者set()方法初始化才能够使用。pre post set三者的区别,pre顾名思义就是最先的,将这个变换插入到队列最前面,post 则是将这次变换插入到队列的最后面,set是将队列清空,然后再插入到队列当中。
Matrix
,矩阵中的MSCALE用于处理缩放变换,MSKEW用于处理错切变换,MTRANS用于处理平移变换,MPERSP用于处理透视变换除了平移变换之外,其他三种操作都是有围绕着某个中心点进行的,如果没有指定则默认是坐标原点。
平移变换(trans):假设点P(x,y),平移到点P1(x1,y1)其中x的偏移量^x,y的偏移量是^y为;用举证表示:
对应的就是MTRANS_X =^X,MTRANS_Y=^Y
缩放变换(scale):假设点P(x,y),将其x放大a倍,将y放大b倍,变成P1(ax,by);也就是MSCALE_X=a MSCALE_Y=b;其矩阵式:
旋转变换(ratote):假定有一个点P(x,y),相对坐标原点顺时针旋转a度,同时假定点p距离原点距离r,x = rcos(b),y = rsin(b), (b是点p与原点之间的直线和x轴的夹角) 变换后点P1的坐标则是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);如果用矩阵表示就是:
网友评论