css3---transform: matrix
一.偏移
transform: matrix(a,b,c,d,e,f);
a 水平缩放、b 水平拉伸、c 垂直拉伸、d 垂直缩放、x 水平位移、y 垂直位移
1. 6个数的相对应矩阵:
a | c | e |
---|---|---|
b | d | f |
0 | 0 | 1 |
公式: | ||
X = ax + cy + e | ||
Y = bx + dy + f | ||
x, y表示转换元素的所有坐标(变量) |
2. 假设矩阵参数如下:
transform: matrix(1, 0, 0, 1, 30, 30); /* a=1, b=0, c=0, d=1, e=30, f=30 */
根据这个矩阵偏移元素的中心点,假设是(0, 0),即x=0, y=0。
X = ax + cy + e = 10 + 00 + 30 = 30
Y = bx + dy + f = 00 + 10 + 30 = 30
中心点坐标从(0 ,0)变成了-> (30 ,30),相当于往右下方偏移了30像素;
实际上: transform: matrix(1, 0, 0, 1, 30, 30);
等同于 transform: translate(30px, 30px);
注意: translate
需要单位, 而matrix
不需要
总结:
transform: matrix(X, X, X, X, 水平偏移距离, 垂直偏移距离); 最后面两个参数是偏移属性
二.缩(scale)放,拉伸
transform: matrix(1, 0, 0, 1, 30, 30);
1. matrix(1, 0, 0, 1, 30, 30);的元素比例与原来一样,1:1;其中,第一个缩放x轴,第二个缩放y轴。
2.假设比例是s,则有matrix(s, 0, 0, s, 0, 0);
套用公式:
X = ax + cy + e = sx + 0y + 0 = sx
Y = bx + dy + f = 0x + sy + 0 = sy
也就是matrix(sx, 0, 0, sy, 0, 0);,等同于 scale(sx, sy);
三.旋转(rotate)
公式:
matrix(cosθ,sinθ,-sinθ,cosθ,0,0)
旋转30度:
transform: matrix(0.866025,0.500000,-0.500000,0.866025,0,0);
等同于: transform:rotate(30deg);
四.拉伸(skew)
公式:
matrix(1,tan(θy),tan(θx),1,0,0)
等同于: skew(θxdeg,θydeg)
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
分类:
CSS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix