程序员成长-修炼中心 「作者:陈楚城」
导航
博客文章
  • Github (opens new window)
  • 掘金 (opens new window)
组件库 (opens new window)
关于我

chamberlain

前端持续学习者
导航
博客文章
  • Github (opens new window)
  • 掘金 (opens new window)
组件库 (opens new window)
关于我
  • 写在前面
  • vue3学习总结

  • 项目相关

  • 性能优化

  • 你不知道的css

    • css
    • cssHoudini
    • css_matrix
      • 矩阵数学概念
      • 计算规则
      • CSS 中矩阵的应用
        • 2D & 3D矩阵应⽤
        • transform 原理
      • 更多的应用场景
    • css_split
  • 常见问题总结记录

  • 数据结构与算法

  • 设计模式

  • TS & JS进阶

  • Node

  • HTTP

  • Linux

  • 开发工具篇

  • 收藏夹

  • OS

  • Nginx

  • 项目工程化

  • 数据库

  • 计算机网络

  • 环境搭建、项目部署

  • 常用工具

  • 自动化

  • js相关

  • QA相关

  • 文章收藏

  • note
  • cssNote
chamberlain
2022-03-14
目录

css_matrix

# CSS 矩阵

# 矩阵数学概念

在数学中,矩阵(Matrix)是⼀个按照⻓⽅阵列排列的复数或实数集合,最早来⾃于⽅程组的系数及常数所构成的⽅阵。

矩阵是⾼等代数学中的常⻅⼯具,也常⻅于统计分析等应⽤数学学科中。在物理学中,矩阵于电路学、⼒学、光学和量⼦物理中都有应⽤;计算机科学中,三维动画制作也需要⽤到矩阵。矩阵的运算是数值分析领域的重要问题。由 m × n 个数aij排成的m⾏n列的数表称为m⾏n列的矩阵,简称m × n矩阵。这m×n 个数称为矩阵A的元素,简称为元

# 计算规则

矩阵第m⾏与第n列交叉位置的那个值,等于第⼀个矩阵第m⾏与第⼆个矩阵第n列,对应位置的每个值的乘积之和。线性代数是向量计算的基础,很多重要的数学模型都要⽤到向量计算。矩阵的本质就是线性⽅程式,两者是⼀⼀对应关系。如果从线性⽅程式的⻆度,理解矩阵乘法就毫⽆难度

参考 百度百科 矩阵 (opens new window)

# CSS 中矩阵的应用

matrix()和 matrix3d()

# 2D & 3D矩阵应⽤

前者是元素2D平⾯的移动变换(transform),后者则是3D变换。2D变换矩阵为 3*3, 3D变换则是 4*4 的矩阵

# transform 原理

  • skew
  • scale
  • rotate
  • translate

transform: matrix(a,b,c,d,e,f)

⽆论是旋转还是拉伸什么的,本质上都是应⽤的matrix()⽅法实现的(修改matrix()⽅法固定⼏个值),只是类似于transform:rotate这种表现形式,我们更容易理解,记忆与上⼿

transform-origin

通过transform-origin属性进⾏设置的时候,矩阵相关计算也随之发⽣改变。实际图形效果上就是,旋转拉伸的中⼼点变了

总结

少点套路,多点真诚,底层就是 matrix 实现的 transform,肯定 martrix 性能更好,可以对 transform 属性进行优化

# 更多的应用场景

  • SVG transform="matrix(a b c d e f)"
  • Canvas context.transform(2,0,0,2,150,150)
  • WebGL 投影,变化,视图变化
  • CSS 3D matrix3d
更新时间: 3/15/2022, 12:28:01 AM
cssHoudini
css_split

← cssHoudini css_split→

最近更新
01
02
网站
06-10
03
nav
06-09
更多文章>
Theme by Vdoing | Copyright © 2019-2022 chamberlain | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式