Canvas transform() 方法
示例
繪製一個矩形,然後使用 transform() 新增一個新的變換矩陣,再次繪製矩形,再新增一個新的變換矩陣,然後再次繪製矩形。請注意,每次呼叫 transform() 都會在前一個變換矩陣的基礎上進行疊加。
JavaScript
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.fillStyle = "yellow";
ctx.fillRect(0, 0, 250, 100)
ctx.transform(1, 0.5, -0.5, 1, 30, 10);
ctx.fillStyle = "red";
ctx.fillRect(0, 0, 250, 100);
ctx.transform(1, 0.5, -0.5, 1, 30, 10);
ctx.fillStyle = "blue";
ctx.fillRect(0, 0, 250, 100);
自己動手試一試 »
描述
transform()
方法可以對畫布上下文進行縮放、旋轉、移動和傾斜。
畫布上的每個物件都有一個變換矩陣。
transform()
方法會替換掉當前的變換矩陣,並將其與由以下引數描述的矩陣相乘:
a | c | e |
b | d | f |
0 | 0 | 1 |
注意
變換會影響 `transform()` 方法呼叫之後進行的繪圖操作。
變換是相對於其他的 rotate()、scale()、translate() 或 transform() 變換而言的。如果您先將圖形放大兩倍,然後再次呼叫 transform() 將其放大兩倍,那麼圖形最終會被放大四倍。
另請參閱
scale() 方法(縮放上下文)
rotate() 方法(旋轉上下文)
translate() 方法(重新對映 0,0 位置)
setTransform() 方法(縮放、旋轉、移動、傾斜上下文)。
語法
context.transform(a, b, c, d, e, f) |
引數值
引數 | 描述 | 試一試 |
---|---|---|
a | 水平縮放圖形 | 試一試 » |
b | 水平傾斜圖形 | 試一試 » |
c | 垂直傾斜圖形 | 試一試 » |
d | 垂直縮放圖形 | 試一試 » |
e | 水平移動圖形 | 試一試 » |
f | 垂直移動圖形 | 試一試 » |
返回值
無 |
瀏覽器支援
<canvas>
元素是 HTML5 標準(2014)。
transform()
在所有現代瀏覽器中都受支援。
Chrome | Edge | Firefox | Safari | Opera | IE |
是 | 是 | 是 | 是 | 是 | 9-11 |
❮ Canvas 參考