En realidad se puede dibujar lo que desea girar en un lienzo fuera de la pantalla y dibujar que en su lienzo principal. Tomé prestado este código desde un Google IO Discusión:
rotateAndCache = function(image,angle) {
var offscreenCanvas = document.createElement('canvas');
var offscreenCtx = offscreenCanvas.getContext('2d');
var size = Math.max(image.width, image.height);
offscreenCanvas.width = size;
offscreenCanvas.height = size;
offscreenCtx.translate(size/2, size/2);
offscreenCtx.rotate(angle + Math.PI/2);
offscreenCtx.drawImage(image, -(image.width/2), -(image.height/2));
return offscreenCanvas;
}
continuación, almacenar en caché con:
rotobj = rotateAndCache(myimg,myangle)
y en su drawcode:
mycontext.drawImage(rotobj,x_coord,y_coord)
esto sólo es útil si tiene un objeto que gira un ángulo solo una vez y, posteriormente, solo está sujeto a transformaciones.
Gracias PeterT. Eso casi encaja en la factura de lo que estaba buscando. Gracias de nuevo. – Vinayak
¿Alguna posibilidad de tener el enlace a esa charla? – Alexander
@Alexander realmente lo hago: http://www.google.com/events/io/2011/sessions/super-browser-2-turbo-hd-remix-introduction-to-html5-game-development.html the Video está en http://www.youtube.com/watch?v=yEocRtn_j9s – PeterT