javascript - 你如何从 CSS transform rotate(deg) 规则中找到变换矩阵?

标签 javascript html css math geometry

假设我有一个 div,它应用了 transform: rotate(15deg) 的 CSS 规则。如果我使用 JQuery 读取元素的计算 CSS 变换,我会看到浏览器已将 rotate(15deg) 变换转换为 matrix(0.965926, 0.258819, -0.258819, 0.965926, 0, 0)

我知道以度为单位的旋转值,我想在不查询 DOM 的情况下计算这个旋转矩阵。如何通过以度为单位的旋转以编程方式计算元素的旋转矩阵?

最佳答案

好的,我已经找到使用 this answer 的解决方案了.

  1. 将度值转换为弧度:var radians = degrees * Math.PI/180
  2. 使用此模式构建旋转矩阵:matrix(a,b,c,d,e,f)
    • a = Math.cos(弧度)
    • b = Math.sin(弧度)
    • c = -b
    • d = a
    • e = 0
    • f = 0

浏览器中计算的 CSS 值四舍五入到小数点后 6 位,因此为了精确匹配,您可以添加额外的步骤:

a = parseFloat(a.toFixed(6))

关于javascript - 你如何从 CSS transform rotate(deg) 规则中找到变换矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33132932/

相关文章:

javascript - 谷歌浏览器不会在调试器中保存我的代码更改

javascript - HTML/CSS/JS 拖动表格列

javascript - 浏览器窗口关闭后 session 不会过期 - Javascript

html按钮太小

javascript - 如何根据插入符号位置突出显示文本?

javascript - 在将 fitBounds() 与 Google Maps API V3 结合使用后使用 setZoom()

javascript - 将 jquery 对象分配给变量无法按预期工作

javascript - Firebase 函数仅设置 Firebase 实时数据库中的第一个值

html - 如何在缩放页面时保持页面正文中 div 标签的大小不受影响?

html - 如何修复此 CSS 在 iPhone Safari 上的显示?