2015-10-14 3 views
3

Скажем, у меня есть div, который имеет правило CSS transform: rotate(15deg). Если я использую JQuery для чтения вычисляемого CSS-преобразования элемента, я вижу, что браузер преобразовал преобразование rotate(15deg) в значение matrix(0.965926, 0.258819, -0.258819, 0.965926, 0, 0).Как найти матрицу преобразования из правила поворота CSS (deg)?

Я знаю значение вращения в градусах, и я бы хотел рассчитать эту матрицу вращения без запроса DOM. Как программно рассчитать матрицу вращения элемента от вращения в градусах?

+0

Это больше о математике: https: // en.wikipedia.org/wiki/Transformation_matrix#Affine_transformations, а 6 param представляет собой верхний '2x3' из матрицы' 3x3'. – fuyushimoya

ответ

0

Хорошо, я выяснил решение, используя this answer.

  1. Преобразование значения степени в радианы: var radians = degrees * Math.PI/180.
  2. Построить матрицу вращения, используя этот шаблон: matrix(a,b,c,d,e,f)
    • a = Math.cos(radians)
    • b = Math.sin(radians)
    • c = -b
    • d = a
    • e = 0
    • f = 0

Вычисленные значения CSS в браузере округлены до 6 знаков после запятой, поэтому для того, чтобы соответствовать, что именно вы можете добавить дополнительный этап:

a = parseFloat(a.toFixed(6)) 
Смежные вопросы