Draw(4)

作者: 我叫谦大宝 | 来源:发表于2016-08-25 14:08 被阅读0次

    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);如果用矩阵表示就是:

    相关文章

      网友评论

          本文标题:Draw(4)

          本文链接:https://www.haomeiwen.com/subject/liqasttx.html