Problème de trigonométrie : obtenir des degrés avec la fonction tan()
apocaalypso
Membre
Bonjour,
J'ai une image représentant un triangle pointant vers le haut.
Je voudrais faire tourner l'image pour qu'elle pointe vers le centre d'une UIImageView. Pour obtenir l'angle, j'utilise la trigonométrie et plus particulièrement tan. Mais il ne tourne jamais dans la bonne direction.
Voici mon code :
Je me suis dit que c'est probablement parce que je n'obtiens pas des radians.
Si quelqu'un pourrait éclairer ma lanterne, je lui en serais très reconnaissant.
Merci d'avance !
Guillaume.
J'ai une image représentant un triangle pointant vers le haut.
Je voudrais faire tourner l'image pour qu'elle pointe vers le centre d'une UIImageView. Pour obtenir l'angle, j'utilise la trigonométrie et plus particulièrement tan. Mais il ne tourne jamais dans la bonne direction.
Voici mon code :
float calc = (fleets.center.x - finalPlanet.center.x)/(finalPlanet.center.y - fleets.center.y);<br />maImageView.transform = CGAffineTransformMakeRotation(tan(calc));
Je me suis dit que c'est probablement parce que je n'obtiens pas des radians.
Si quelqu'un pourrait éclairer ma lanterne, je lui en serais très reconnaissant.
Merci d'avance !
Guillaume.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
atan2(finalPlanet.center.y - fleets.center.y,fleets.center.x - finalPlanet.center.x)
est l'angle que fait le vecteur de fleets.center vers finalPlanet.center avec l'horizontal.
J'avais aussi testé avec tanl, tanh, etc...
J'ai donc fait :
Mais l'image ne pointe pas bien, pourtant mes formules sont bonnes, je les ai faà®tes sur papier d'abord pour pouvoir vérifier.
Il faudrait que le centre de mon triangle soit sa pointe c'est ça ?
Effectivement, chez toi, ton image est à l'horizontale vers la droite d'où le M_PI. Chez moi, la flèche pointe vers le haut, j'ai donc du utiliser M_PI/2.
Grâce à toi j'ai réussi à le faire marcher, j'ai donc :
Pour une direction top-left :
top-right :
bottom-left :
bottom-right :
C'est le bottom-left qui m'a posé le plus de problème, avant de comprendre qu'il fallait tout mettre en négatif.
En tout cas merci énormément Philippe !