Эта статья нуждается в редакционном обзоре. Как вы можете помочь.
This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for the proper prefixes to use in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the spec changes.
Свойство CanvasRenderingContext2D
.currentTransform
, предоставляемое Canvas 2D API, возвращает или устанавливает объект SVGMatrix
для текущей матрицы преобразований.
Синтаксис
ctx.currentTransform [= value];
value
- Объект
SVGMatrix
, который будет использован в роли текущей матрицы преобразований.
Примеры
Использование метода currentTransform
Ниже представлен простой фрагмент кода, использующий свойство currentTransform
для установки матрицы преобразований.
HTML
<canvas id="canvas"></canvas>
JavaScript
var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); var matrix = ctx.currentTransform; matrix.a = 1; matrix.b = 1; matrix.c = 0; matrix.d = 1; matrix.e = 0; matrix.f = 0; ctx.currentTransform = matrix; ctx.fillRect(0,0,100,100);
Вы можете редактировать код, представленный ниже, и сделанные вами изменения отобразятся на холсте в режиме реального времени (убедитесь, что вы используете браузер, поддерживающий данное свойство - смотрите таблицу совместимости):
Playable code
<canvas id="canvas" width="400" height="200" class="playable-canvas"></canvas> <div class="playable-buttons"> <input id="edit" type="button" value="Edit" /> <input id="reset" type="button" value="Reset" /> </div> <textarea id="code" class="playable-code" style="height:150px"> var matrix = ctx.currentTransform; matrix.a = 1; matrix.b = 1; matrix.c = 0; matrix.d = 1; matrix.e = 0; matrix.f = 0; ctx.currentTransform = matrix; ctx.fillRect(0,0,100,100);</textarea>
var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); var textarea = document.getElementById("code"); var reset = document.getElementById("reset"); var edit = document.getElementById("edit"); var code = textarea.value; function drawCanvas() { ctx.clearRect(0, 0, canvas.width, canvas.height); eval(textarea.value); } reset.addEventListener("click", function() { textarea.value = code; drawCanvas(); }); edit.addEventListener("click", function() { textarea.focus(); }) textarea.addEventListener("input", drawCanvas); window.addEventListener("load", drawCanvas);
Спецификации
Спецификация | Статус | Комментарии |
---|---|---|
WHATWG HTML Living Standard Определение 'CanvasRenderingContext2D.currentTransform' в этой спецификации. |
Живой стандарт |
Совместимость с браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | (Да) [1] | Нет [2] | Нет | Нет | Нет |
Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | Нет | Нет | Нет | Нет | Нет | Нет |
[1] Поддержка данной возможности отключена по умолчанию. Активируйте флаг ExperimentalCanvasFeatures
чтобы влючить ее.
[2] Смотрите ошибка 928150. Gecko также поддерживает экспериментальные свойства с префиксами mozCurrentTransform
и mozCurrentTransformInverse,
которые устанавливают или возвращают текущую (обратную) матрицу преобразований.
Смотрите также
- Интерфейс, определяющий его,
CanvasPattern
SVGMatrix