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/