CanvasRenderingContext2D: transform() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

Canvas 2D API 的 CanvasRenderingContext2D.transform() 方法將當前變換乘以該方法引數所描述的矩陣。這允許您縮放、旋轉、平移(移動)和傾斜畫布上下文。

注意:另請參閱 setTransform() 方法,該方法將當前變換重置為單位矩陣,然後呼叫 transform()

語法

js
transform(a, b, c, d, e, f)

變換矩陣描述如下:[acebdf001]\left[ \begin{array}{ccc} a & c & e \ b & d & f \ 0 & 0 & 1 \end{array} \right].

引數

a (m11)

矩陣第一行第一列的單元格。

b (m12)

矩陣第二行第一列的單元格。

c (m21)

矩陣第一行第二列的單元格。

d (m22)

矩陣第二行第二列的單元格。

e (m41)

矩陣第一行第三列的單元格。

f (m42)

矩陣第二行第三列的單元格。

如果一個點的原始座標是(x,y)(x, y),那麼變換後其座標將變為(ax+cy+e,bx+dy+f)(ax + cy + e, bx + dy + f)。這意味著

  • ef 控制著畫布上下文的水平和垂直平移。
  • bc0 時,ad 控制著畫布上下文的水平和垂直縮放。
  • ad1 時,bc 控制著畫布上下文的水平和垂直傾斜。

返回值

無(undefined)。

示例

傾斜圖形

此示例將一個矩形垂直(.2)和水平(.8)傾斜。縮放和平移保持不變。

HTML

html
<canvas id="canvas"></canvas>

JavaScript

js
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");

ctx.transform(1, 0.2, 0.8, 1, 0, 0);
ctx.fillRect(0, 0, 100, 100);

結果

規範

規範
HTML
# dom-context-2d-transform-dev

瀏覽器相容性

另見