CSS Canvas Skew在setTransform中使用了什么值?

时间:2013-09-05 11:21:38

标签: css canvas skew

http://www.w3schools.com/tags/canvas_settransform.asp

context.setTransform(A,B,C,d,E,F);

W3C学校说"Skew the the drawings horizontally",但它使用了哪个值?

似乎它不像CSS那样扭曲事物,也不使用PI。解释

2 个答案:

答案 0 :(得分:3)

在您的示例转换中,b& c分别代表水平和垂直偏斜。

变换矩阵的排列方式如下:

context.setTransform(scaleX, skewX, skewY, scaleY, translateX, translateY);

歪斜量是一个以弧度表示的切线角度。

所以这会水平扭转30度:

    var tan30degrees=Math.tan( 30*Math.PI/180 );

    ctx.save();
    ctx.setTransform(1,tan30degrees,0,1,0,0);
    ctx.fillRect(100,100,50,50);
    ctx.restore();

enter image description here

答案 1 :(得分:1)

变换矩阵 - 一组九个数字,用于使用线性代数变换二维数组,例如位图。矩阵的最后一组始终为0 0 1,因此需要六个不同的参数

请看一下

https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/HTML-canvas-guide/MatrixTransforms/MatrixTransforms.html