css的transform样式计算-第一节

引言

在使用 css 样式进行样式的缩放、旋转等设置时,思考了一下它的较浅层的原理,恩,这个阶段都 是一些初高的数学计算,从新看这里的时候顺便捡了捡初高中的数学,比如三角函数之类。

通用公式

假设 A * B = Y。其中,A 为 m * n 的 m 行 n 列矩阵,B 为 1 * n 列的矩阵。B 拆分为列向量,并且列向量的维数就是矩阵的行数。

方法

transform(a, b, c, d, e, f) 与 Matrix 的转换。

推导出来

简化后

缩放

推导出来

css 复制代码
.box {
  transform: scale(0.3, 0.6);
}

通过计算

等价于

css 复制代码
.box {
  transform: matrix(0.3, 0, 0, 0.6, 0, 0);
}

平移

推导出来

转旋

推导出来

假设存在点 E 移动至点 F。设 E 坐标为(x1, y1),F 坐标为(x2, y2),D 坐标为(a, b)。

简要图示:

初中数学:

演算:

推导:

验证:

转换为矩阵:

从 css 语法上开始转换

css 复制代码
.box {
  transform: rotate(30deg);
}

这个旋转套用公式

等价于

css 复制代码
.box {
  transform: matrix(0.86, 0.5, -0.5, 0.86, 0, 0);
}

复合

css 复制代码
.box {
  transform: rotate(30deg) scale(0.3, 0.6);
}

复合需要进行矩阵乘法计算

等价于

css 复制代码
.box {
  transform: matrix(0.258, 0.15, -0.3, 0.516, 0, 0);
}

最后,后续本文修正和更新,请参阅:'kangkk.cn/index.php/计...'

相关推荐
子兮曰21 分钟前
PHP漏洞危机,你的网站升级了吗?
前端·后端·php
jerrywus22 分钟前
给 Pi 装上生图插件:从登录报错到画出一只 200×200 的猫
前端·agent·claude
陈随易28 分钟前
搞钱点子之生态鱼缸
前端·后端·程序员
PBitW32 分钟前
从空目录到上线:我全程用 TRAE 做了一款微信小游戏合集(含一次完整架构重构)
前端·trae
不爱学英文的码字机器37 分钟前
从Q1迁到T1,同一个编号已经换了含义
前端·数据库·microsoft
云和数据.ChenGuang1 小时前
光哥说Python 循环导入(Circular Import)深度解析:成因、排查与解决方案
开发语言·前端·人工智能·python·langchain
avi91111 小时前
【AI教人】在Inspector显示所有Delegate-Odin Inspector之三
java·前端·算法·delegate·inspector·editor扩展·unity editor
fengci.1 小时前
BUUCTF(困难部分)
android·开发语言·前端·学习·php
Ward的AI产品实战1 小时前
开源 AI 网关 Magpie 调优终结篇:顺位排错、跨家族对抗审查与 5 大路由组重构(下篇)
前端·人工智能
Highcharts.js1 小时前
BI可视化图表“维护难”问题的解决方案
开发语言·前端·javascript·编辑器·ecmascript·bi·highcharts