thinking about the matrix when you do
transform : skew(x, y);
then itโs like cross-matrix multiplication
[X, Y, Z]
and
| 1, sx, 0 | | sy, 1, 0 | | 0, 0, 1 |
where sx = tan(x) and sy = tan(y)
leads to the emergence of new coords
X' = X + Y * sx Y' = Y + X * sy Z' = Z
but when you do
transform : skewX(x) skewY(y);
it looks like the first cross-multiplication matrix
[X, Y, Z]
with matrix
| 1, sx, 0 | | 0, 1, 0 | | 0, 0, 1 |
leads to the emergence of new coords
X' = X + Y * sx Y' = Y Z' = Z
and then the new matrix
[X ', Y', Z ']
times
| 1, 0, 0 | | sy, 1, 0 | | 0, 0, 1 |
leads to the emergence of new coords as
X" = X + Y * sx Y" = Y + ( X + Y * sx ) * sy Z" = Z
Thus, Y coords vary from Y + X * sy to Y + ( X + Y * sx ) * sy