CSSに次の変換マトリックスがあります
// rotate the element 60deg
element.style.transform = "matrix(0.5,0.866025,-0.866025,0.5,0,0)"
そして、これを使用して回転を見つけることができます...
// where a = [0.710138,0.502055,-0.57735,1,0,0]
var rotation = ((180/Math.PI) * Math.atan2( ((0*a[2])+(1*a[3])),((0*a[0])-(1*a[1]))) - 90
console.log(rotation); // ~60
スキューについても同様に...
// skew(30deg,-50deg)
element.style.transform = "matrix(1,-1.19175,0.57735,1,0,0)"
var skewY = ((180/Math.PI) * Math.atan2( ((0*a[2])+(1*a[3])),((0*a[0])-(1*a[1]))) - 90;
var skewX = (180/Math.PI) * Math.atan2( ((1*a[2])+(0*a[3])),((1*a[0])-(0*a[1])));
console.log([skewX,skewY]); // ~= [30,-50]
ただし、スキューと回転の両方を使用するとすぐに、特に回転の式がスキューの式と同じであるため、すべてが奇妙になります...したがって、式は正しくありません。
両方の属性が適用されている回転と傾斜の両方を決定するにはどうすればよいですか。私が知っているのはマトリックス変換だけです。
また、スケールによってスキュー値が台無しになりましたが、これはすべきではないと思います。