روش HTML canvas transform()

تعریف و استفاده

هر اشیاء روی کاغذ دارای یک ماتریس تغییر فعلی هستند.

transform() روشی که ماتریس تغییر فعلی را با ماتریس زیر جایگزین می‌کند. آن را با ماتریس زیر عمل می‌کند:

a  c  e
b  d  f
0  0  1

به عبارت دیگر، transform() به شما اجازه می‌دهد که محیط فعلی را بزرگ‌کنید، بچرخانید، حرکت دهید و مایل کنید.

توجه:این تغییر تنها نقاشی‌های بعد از فراخوانی transform() را تحت تأثیر قرار می‌دهد.

توجه:رفتار transform() روشی که نسبت به rotate()وscale()وtranslate() یا تغییرات دیگری که توسط transform() انجام می‌شود. به عنوان مثال: اگر نقاشی را به دو برابر بزرگ کرده‌اید، روش transform() نقاشی را دو برابر بزرگ می‌کند، بنابراین نقاشی شما در نهایت چهار برابر بزرگ خواهد شد.

نکته:لطفاً ببینید setTransform() روشی که در برابر تغییرات دیگر رفتار نمی‌کند.

مثال

یک مستطیل بکشید؛ از طریق transform() یک ماتریس تغییر جدید اضافه کنید و مستطیل را دوباره بکشید؛ یک ماتریس تغییر جدید اضافه کنید و مستطیل را دوباره بکشید. توجه داشته باشید که هر بار که transform() فراخوانی می‌شود، آن را بر روی ماتریس تغییر قبلی می‌سازد:

آپ کا براوزر HTML5 کا کینس تگ نمیتواند.

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 تصویر کشیدن عمودی

پشتیبانی مرورگر

اعداد در جدول نشان‌دهنده نسخه اولیه مرورگرهایی هستند که این ویژگی را کامل پشتیبانی می‌کنند.

کروم اژدها فایرفاکس سافاری اپرا
کروم اژدها فایرفاکس سافاری اپرا
4.0 9.0 3.6 4.0 10.1

توجه:اینترنت اکسپلورر 8 و نسخه‌های قدیمی‌تر از <canvas> عنصر را پشتیبانی نمی‌کنند.