首页 CSS 正文
296

css3之矩阵变换备忘

css3中应用矩阵变换是这样的
.demo{
       transform:matrix(a,b,c,d,e,f) 
}
a,b,c,d,e,f是一些变换参数,那么它们分别表示什么含义呢?

先来复习一下大学里认为一无是处的线性代数,其中有个矩阵乘法,像这样:
「a c        「w y         「aw+cx  ay+cz
  b d 」 X    x  z 」 =    bw+dx  by+dz 

矩阵变换也是应用了矩阵乘法,将原坐标x,y映射到新的坐标x', y'上
「a c e         「 x          「 ax+cy+e
  b d f      X     y     =       bx+dy+f
  0 0 1
         1           0 + 0 +1 
于是 x' = ax+cy+e,  y' = bx+dy+f
当应用变换矩阵matrix(1, 0, 0, 1, M, N)时,x'=x+M, y'=y+N, 达到了平移translate(M,N)目的。
当应用变换矩阵matrix(S, 0, 0, S, 0, 0)时,x'=Sx,    y'=Sy, 达到了缩放scale(S)目的。
当应用变换矩阵matrix(cosθ, sinθ, -sinθ, cosθ, 0, 0)时,达到了旋转rotate(θ)目的。
当应用变换矩阵matrix(1, tan(θy), tan(θx), 1, 0, 0)
时,达到了拉伸skew(θx, θy)目的。


参考:
http://www.zhangxinxu.com/wordpress/2012/06/css3-transform-matrix-矩阵/comment-page-2/

正在加载评论...