Récupérer l'angle d'une conversion sin / cos
Je veux inverser une sin
/cos
opération pour obtenir un angle, mais je ne peux pas comprendre ce que je devrais faire.
J'ai utilisé sin
et cos
sur un angle en radians pour obtenir le x/y du vecteur en tant que tel:
double angle = 90.0 * M_PI /180.0; //90 deg. to rad.
double s_x = cos( angle );
double s_y = sin( angle );
Donné s_x
et s_y
est-il possible de revenir de l'angle? J'ai pensé atan2
est la fonction à utiliser, mais je n'obtiens pas les résultats escomptés.
source d'informationauteur Eric Fortier
Vous devez vous connecter pour publier un commentaire.
atan2(s_y, s_x)
devrait vous donner le bon angle. Peut-être que vous avez inversé l'ordre des_x
ets_y
. Aussi, vous pouvez utiliser leacos
etasin
fonctions directement surs_x
ets_y
respectivement.- Je utiliser le acos fonction pour récupérer l'angle de la s_x cosinus. Mais parce que plusieurs angles pourraient en résulter pour le même cosinus (par exemple cos(+60°) = cos(-60°) = 0.5), il n'est pas possible de revenir de l'angle directement à partir de s_x. Donc, j'utilise aussi le signe de s_y pour obtenir de nouveau le signe de l'angle.
pour le cas spécifique de l' (s_y == 0), il n'est pas question de prendre +acos ou -acos, car il signifie que l'angle est de 0° (+0° -0° sont les mêmes angles) ou 180° (+180° -180° sont les mêmes angles).
En mathématiques est l'opération inverse de sin et cos. C'est arcsin et arccos.
Je ne sais pas quel langage de programmation que vous utilisez. Mais généralement, si elle a cos et sin de la fonction puis il peut avoir la fonction d'inversion.
asin(s_x), acos(s_y), peut-être, si vous êtes à l'aide de c.