contextos lienzo 2D de Firefox tienen (no estándar) y mozCurrentTransform mozCurrentTransformInvertir propiedades.
WhatWG ahora ha definido las propiedades currentTransform y currentTransformInverse (las primeras incluso son editables). Aquí está la parte correspondiente de la especificación:
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#transformations
Sin embargo, estos probablemente no va a ser aplicada universalmente en los navegadores por algún tiempo, así que si quieres portabilidad tendrá que recurrir al seguimiento de la matriz manualmente @Dave y @James dicen.
Todos los hombres y su perro parecen haber escrito un trazador de matriz de transformación de lona. Acabo de echar un vistazo a @Dave Lawrence; Creo que el mío es mejor en algunos aspectos, aunque estoy seguro de que también es inferior en otros aspectos.
- mina no requiere ningún cambio en el código de usuario JS - modifica los prototipos de la lona y de contexto, por lo que acaba de añadir una etiqueta guión y ya está bueno para ir.
- Se intercepta la configuración de la propiedad currentTransform.
- Se esfuerza solo por hacer lo que tiene que hacer.
Funciona en los últimos Chrome y Firefox, pero aún no lo he probado en IE.
puse la mía en un jsFiddle, con una simple demostración: http://jsfiddle.net/XmYqL/1/
Aquí es un bloque de código para aplacar stackoverflow por lo que me permite enlazar a jsFiddle (??):
code, code, wonderful code
I finalmente encontrado el momento de subir a mi polyfill GitHub:
https://github.com/supermattydomain/canvas.currentTransform.js
sé que es no es perfecto, pero realmente me gustaría que todos trabajemos juntos en la implementación de One True Solution para este problema. No me importa si es mío o de otra persona. Esta esquina de JavaScript/HTML5/Canvas se parece mucho a los Balcanes: un mar de soluciones parciales. Por favor, todos, tenedor mío, agrega tus cambios y envíame solicitudes de extracción, o envíame tu URL para que pueda fusionar tu código, o reemplazar el mío al por mayor con el tuyo, o lo que sea. Este es un problema estúpido que solo quiero recordar. Si trabajamos juntos, podemos hacerlo.
gracias. eso es exactamente lo que he estado haciendo, simplemente pensé que lo estaban haciendo de forma nativa, y que hacer las operaciones es simplemente hacer el trabajo por nada. –