Ho un'immagine caricata nell'area di disegno. Non posso (trascinare) spostare l'immagine correttamente, dopo che è stata ruotata. In realtà, si muove ma si muove in base al piano delle coordinate dell'immagine. Quindi spostando un'immagine ruotata di 90 gradi verso destra, si sposta verso il basso e non verso destra come previsto. Quale potrebbe essere un buon modo per risolvere questo problema?Come posso spostare l'immagine della tela ruotata senza disorientamento?
Questa è la mia funzione di disegno:
function draw(){
var im_width = parseInt(imageObj.width + resizeAmount);
var im_height = parseInt(imageObj.height + resizeAmount);
var rotationAmount = rotationVal - prevRotation;
prevRotation = rotationVal;
context.clearRect(0, 0, canvas.width, canvas.height);
context.translate(canvas.width/2, canvas.height/2);
context.rotate(rotationAmount * Math.PI/180);
context.translate(-canvas.width/2, -canvas.height/2);
context.drawImage(imageObj, moveXAmount, moveYAmount, im_width, im_height);
}
Ecco la jsdiddle dove è possibile simulare e vedere quello che voglio dire.
PS: È possibile ruotare l'immagine con il cursore a sinistra. Il cursore inferiore serve per lo zoom. Si prega di ri-eseguire il violino se l'immagine non appare nel primo carico.
Voto positivo per una buona risposta. Inoltre, @Skeletor: consiglio vivamente la libreria di trasformazione di K3N. Se hai il futuro bisogno di colpire con il test del mouse l'immagine trasformata, la libreria di K3N sarà molto utile. :-) – markE