Canvas transform() -Methode

Definition und Verwendung

Jedes Objekt auf dem Canvas hat eine aktuelle Transformationsmatrix.

transform() Methode ersetzt die aktuelle Transformationsmatrix. Sie operiert mit der folgenden Matrix:

a  c  e
b  d  f
0  0  1

Mit anderen Worten, transform() ermöglicht es Ihnen, das aktuelle Umfeld zu skalieren, zu drehen, zu bewegen und zu neigen.

Anmerkung:Diese Transformation beeinflusst nur das Zeichnen, das nach dem Aufruf von transform() durchgeführt wird.

Anmerkung:Das Verhalten der transform() -Methode ist relativ zu rotate(),scale(),translate() oder andere Transformationen, die durch transform() durchgeführt werden. Zum Beispiel: Wenn Sie das Zeichnen bereits auf das Zweifache vergrößert haben, wird die Methode transform() das Zeichnen noch einmal verdoppeln, sodass Ihr Zeichnen letztlich viermal so groß wird.

Hinweis:Bitte sehen Sie setTransform() Methode, die nicht relativ zu anderen Transformationen verhält.

Beispiel

Zeichnen Sie ein Rechteck; fügen Sie eine neue Transformationsmatrix über transform() hinzu und zeichnen Sie das Rechteck erneut; fügen Sie eine neue Transformationsmatrix hinzu und zeichnen Sie das Rechteck erneut. Beachten Sie, dass transform() immer auf dem vorherigen Transformationsmatrix aufbaut:

Ihr Browser unterstützt das HTML5 Canvas-Tag nicht.

JavaScript:

var c=document.getElementById("myCanvas");
var ctx=c.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);

亲自试一试

语法

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

参数值

参数 描述
a 水平缩放绘图。
b 水平倾斜绘图。
c 垂直倾斜绘图。
d 垂直缩放绘图。
e 水平移动绘图。
f 垂直移动绘图。

浏览器支持

表中的数字注明了首个完全支持该属性的浏览器版本。

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
4.0 9.0 3.6 4.0 10.1

Anmerkung:Internet Explorer 8 und frühere Versionen unterstützen das <canvas>-Element nicht.