Ho uno strano problema, quando eseguo la rotazione passando il valore letterale dell'angolo (ottengo l'angolo precedente stampato dalla console e metto invece la variabile) funziona perfettamente ma se eseguo il codice passaggio di una variabile come il mio codice qui sotto, l'immagine viene disegnata "più in alto e più a sinistra" (scusate per il mio cattivo inglese)ruota l'immagine dal proprio centro nella tela
function setImg(src,x,y,angle)
{
var TO_RADIANS = Math.PI/180;
var base_image = new Image();
base_image.src = src
base_image.onload = function() {
console.log("-->->"+parseFloat(angle))
ctx.save(); //saves the state of canvas
ctx.translate(x+(base_image.width/2), y+(base_image.height/2)); //let's translate
ctx.rotate(angle*TO_RADIANS); //increment the angle and rotate the image
ctx.drawImage(base_image, -(base_image.width/2),-(base_image.height/2)); //draw the image ;)
ctx.restore(); //restore the state of canvas
};
}
grazie!
Perché non utilizzare CSS per ruotare l'immagine? – Mottie
'base_image' è una variabile globale. Senza il codice coinvolto nella dichiarazione e l'uso aggiuntivo di quella variabile non possiamo fare a meno di non avere nulla di sbagliato nel codice. – Blindman67
modificato: base_image è una variabile locale ma continua a fare lo stesso. Non uso css perché ho bisogno delle immagini nella tela per dipingere su –