วิธี transform() ของ canvas HTML

คำอธิบายและวิธีใช้

ทุกวัตถุบนกระดานวาดมีมตรฐานการแปลงปัจจุบัน

transform() วิธีแทนที่มตรฐานการแปลงปัจจุบัน มันจะปฏิบัติต่อมตรฐานการแปลงปัจจุบันด้วยมตรฐานการแปลงที่อธิบายด้านล่าง:

a  c  e
b  d  f
0  0  1

ดังนั้น transform() อนุญาตให้คุณขยาย หมุน ย้าย และมีมุมความคลองต่อสภาพปัจจุบัน

หมายเหตุ:การแปลงนี้จะส่งผลกระทบเฉพาะการวาดที่เรียก transform() ต่อไป

หมายเหตุ:การทำงานของวิธี transform() ขึ้นอยู่กับ rotate()scale()translate() หรือการแปลงอื่นๆ ที่ทำด้วย transform() ตามไปนี้ ตัวอย่าง: หากคุณได้ตั้งค่าการวาดเป็นการขยายสองเท่า วิธี transform() จะขยายวาดสองเท่า ดังนั้นวาดของคุณจะขยายสี่เท่า

คำแนะนำ:โปรดดู setTransform() วิธีที่จะทำงานไม่ขึ้นอยู่กับการแปลงอื่นๆ

ตัวอย่าง

วาดสี่เหลี่ยมขอบตรง; ใช้ transform() เพิ่มมตรฐานการแปลงใหม่ แล้ววาดสี่เหลี่ยมขอบตรงอีกครั้ง; เพิ่มมตรฐานการแปลงใหม่อีกครั้ง แล้ววาดสี่เหลี่ยมขอบตรงอีกครั้ง โปรดจำได้ว่า ในแต่ละครั้งที่คุณเรียก transform() มันจะสร้างมตรฐานการแปลงขึ้นบนมตรฐานการแปลงที่มีอยู่แล้ว:

Your browser does not support the HTML5 canvas tag.

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

หมายเหตุ:Internet Explorer 8 และเวอร์ชั่นเก่ากว่านี้ไม่สนับสนุนองค์ประกอบ <canvas>