Con la premessa che l'immagine della ruota che devi ruotare è quadrata posso dirti (altrimenti nulla di ciò è valido):
Secondo me la larghezza dell'immagine dopo la rotazione va calcolata così:
[pseudo-codice - C#]
diagonale_immagine = diagonale immagine originale, quando l'immagine era ruotata di 0^, quindi lato * Radice_q(2)
if (angolo_rotazione >45)
angolo_rotazione=angolo_rotazione % 45;
if (angolo_rotazione ==0)
larghezza_img_ruotata =larghezza_img_originale
else if ( angolo_rotazione <45 ) a
larghezza_img_ruotata = Cos(angolo) * diagonale_immagine
else if ( angolo_rotazione ==45 )
larghezza_img_ruotata = diagonale_immagine
il punto in cui devi girare l'immagine NON è: larghezza/2 e altezza/2
Difficile calcolare i punti in cui tu devi girare l'immagine, perché considera che se hai ruotato il quadrato di x gradi allora il centro del quadrato non è più larghezza_IMG / 2 e altezza_IMG/2 ma devi incrociare le 2 diagonali del quadrato e quel punto è il centro del quadrato che tu devi girare ! Incrociare le 2 diagonali NON è uguale al H/2 e W/2 !
Questo è il mio parere...
Ultima modifica effettuata da vankraster il 03/10/2013 alle 13:13 |