Draw(4)

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • CSDN博客 img cquwentao android matrix 最全方法详解与进阶(完整篇) 发表于201...
    北风知我意阅读 10,344评论 0 0
  • Matrix主要用于对图像的图形处理。前面学习的ColorMatirx主要是图像色彩的处理 学习资料 Androi...
    英勇青铜5阅读 13,786评论 12 50
  • 1 前言 OpenGL渲染3D模型离不开空间几何的数学理论知识,而本篇文章的目的就是对空间几何进行简单的介绍,并对...
    RichardJieChen阅读 12,030评论 1 11
  • day01 我为什么要开这个专栏 现在的路很长,一块走呗! 道理这东西,说再多也没有用,貌似理解了却实际上式...
    守住这块热土阅读 981评论 0 0
  • 根结点设置 display:flex 行内元素设置 display:inline-flex 子结点设置项:容器属性...
    Flippancy阅读 3,382评论 0 1