3

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

context.setTransform(a,b,c,d,e,f);

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

似乎它不像 CSS skews 东西的度数,也没有使用 PI。解释?

4

2 回答 2

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();

在此处输入图像描述

于 2013-09-05T15:35:26.550 回答
1

变换矩阵——一组九个数字,用于使用线性代数变换二维数组,例如位图。矩阵的最后一组总是 0 0 1 所以它需要六个不同的参数

请看看这个

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

于 2013-09-05T11:41:57.633 回答