matrix矩阵

原文-理解CSS3 transform中的Matrix(矩阵) by张鑫旭

matrix矩阵

transform中将用到这个变化矩阵,代码写做:matrix(a,b,c,d,e,f)。
矩阵变换,可以带来更直接,可读性更高的变换方式。

平移

e代表x平移量;
f代表y平移量;

缩放

a为x轴的缩放
d为y轴的缩放

旋转

matrix(cosθ,sinθ,-sinθ,cosθ,0,0)当matrix按照θ计算并取值,经过矩阵变换,图形就顺时针转过θ角度。

斜拉伸(skew)

根据matrix(1,tan(θy),tan(θx),1,0,0)进行变换,图形将进行斜拉伸。
对应的点发生如下变化。

x' = x+y*tan(θx)+0 = x+y*tan(θx) 
y' = x*tan(θy)+y+0 = x*tan(θy)+y

其他

其他复杂的图形变化,可以通过计算出变换前后坐标轴的关系,来得到matrix矩阵。

常用变换对应表格

transform2d matrix
translate(tx, ty) matrix(1, 0, 0, 1, tx, ty);
scale(sx, sy) matrix(sx, 0, 0, sy, 0, 0);
rotate(a) matrix(cos(a), sin(a), -sin(a), cos(a), 0, 0);
skew(ax, ay) matrix(1, tan(ay), tan(ax), 1, 0, 0);
transform3d matrix
translate3d matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,tx,ty,tz,1)
scale3d(sx,sy,sz) matrix3d(sx,0,0,0,0,sy,0,0,0,0,sz,0,0,0,0,1)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 首先讲讲canvas里面的旋转、缩放、平移、 Android中可以通过Matrix和ColorMatrix对图像进...
    三季人阅读 4,629评论 0 3
  • CSDN博客 img cquwentao android matrix 最全方法详解与进阶(完整篇) 发表于201...
    北风知我意阅读 10,362评论 0 0
  • 1 前言 OpenGL渲染3D模型离不开空间几何的数学理论知识,而本篇文章的目的就是对空间几何进行简单的介绍,并对...
    RichardJieChen阅读 12,062评论 1 11
  • Matrix 是什么 Matrix 拥有一个 3 * 3 矩阵,这个矩阵用于坐标变换。这个矩阵定义如下 Matri...
    不惜留恋_阅读 8,711评论 4 23
  • 2006年8月29日深夜10点51分,胡歌遭遇车祸。距今,整整10年。当时的胡歌,才24岁。 2005年暑期的一部...
    一枚书女阅读 9,089评论 30 59