如何将SVG的skewX、skewY变换转换为matrix矩阵?
SVG skewX/skewY 与 matrix 矩阵的转换方法
当然可以将skewX或skewY转换为对应的matrix矩阵,具体对应关系如下:
skewX(θ):对应的变换矩阵为
matrix(1, tan(θ), 0, 1, 0, 0)
θ 是倾斜角度,需要先将角度转换为弧度计算正切值。例如skewX(30)对应的 tan(30°)≈0.577,转换后的矩阵就是matrix(1, 0.577, 0, 1, 0, 0)。skewY(θ):对应的变换矩阵为
matrix(1, 0, tan(θ), 1, 0, 0)
同理,θ 为倾斜角度,转弧度后计算正切值。例如skewY(45)对应的 tan(45°)=1,转换后的矩阵就是matrix(1, 0, 1, 1, 0, 0)。
补充说明:SVG 的 matrix 参数顺序为 matrix(a, b, c, d, e, f),对应坐标变换公式:x' = a*x + c*y + ey' = b*x + d*y + f
skewX 本质是让 Y 坐标随 X 坐标偏移,所以 b 取 tan(θ);skewY 是让 X 坐标随 Y 坐标偏移,所以 c 取 tan(θ),其余参数保持默认的平移(e、f)和缩放旋转基础值(a=1, d=1)即可。
内容的提问来源于stack exchange,提问作者Poirot12345 T
相关产品推荐
相关产品推荐

