CanvasRenderingContext2D: transform() メソッド
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
CanvasRenderingContext2D.transform() はキャンバス 2D API のメソッドで、このAPIは、現在の座標変換をこのメソッドの引数で指定された行列で乗算します。これにより、コンテキストの変倍、回転、移動、歪めの座標変換を行うことができます。
メモ:
setTransform() メソッドも参照してください。このメソッドは現在の変換を恒等行列にリセットし、その後 transform() を呼び出します。
構文
js
transform(a, b, c, d, e, f)
座標変換行列は として記述されます。
引数
a(m11)-
行列の 1 行目 1 列目のセルです。
b(m12)-
行列の 2 行目 1 列目のセルです。
c(m21)-
行列の 1 行目 2 列目のセルです。
d(m22)-
行列の 2 行目 2 列目のセルです。
e(m41)-
行列の 1 行目 3 列目のセルです。
f(m42)-
行列の 2 行目 3 列目のセルです。
もともと の座標を持つ点があった場合、座標変換後は座標が となります。すなわち、
eとfはコンテキストの水平方向および垂直方向の移動を制御します。bとcが0の場合、aとdがコンテキストの水平方向および垂直方向の変倍を制御します。aとdが1の場合、bとcはコンテキストの水平方向および垂直方向の歪めを制御します。
返値
なし (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);
結果
仕様書
| Specification |
|---|
| HTML> # dom-context-2d-transform-dev> |
ブラウザーの互換性
関連情報
- このメソッドを定義しているインターフェイス:
CanvasRenderingContext2D CanvasRenderingContext2D.setTransform()