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/计...'

相关推荐
FIN66683 分钟前
昂瑞微:以射频“芯”火 点亮科技强国之路
前端·人工智能·科技·前端框架·智能
携欢16 分钟前
PortSwigger靶场之Exploiting server-side parameter pollution in a REST URL通关秘籍
前端·javascript·安全
鹏多多29 分钟前
今天你就是VS Code之神!15个隐藏技巧让代码效率翻倍
前端·程序员·visual studio code
linksinke38 分钟前
html案例:制作一个图片水印生成器,防止复印件被滥用
开发语言·前端·程序人生·html
寒月霜华38 分钟前
JavaWeb-html、css-网页正文制作
前端·css·html
执沐41 分钟前
HTML实现流星雨
前端·html
*濒危物种*43 分钟前
HTML标签语法,基本框架
前端·css·html
软件技术NINI44 分钟前
html css js网页制作成品——HTML+CSS+js早餐铺网页设计(4页)附源码
javascript·css·html
IT_陈寒1 小时前
Vue3性能优化实战:这7个技巧让我的应用提速50%,尤雨溪都点赞!
前端·人工智能·后端
艾小码1 小时前
前端必备:JS数组与对象完全指南,看完秒变数据处理高手!
前端·javascript