Je suis en train de construire un petit moteur Physics et j'ai du mal à convertir ma valeur Radian en degrés en utilisant atan
, car j'ai besoin d'un angle pour sortir en degrés seulement.Conversion de radians en degrés
Tout d'abord, j'ai une valeur x
et y
, et je dois trouver un angle à l'aide atan
, donc je divise y par x comme ceci:
angleDivide = yN/xN;
Alors, avant de mettre cette valeur en tan
, je tenter de le convertir en degrés comme ceci:
angleToDegrees = angleDivide * (3.14/180);
Alors je place angleToDegrees dans atan
:
angle = atan(angleToDegrees);
Mais quand j'affiche angle
, je reçois toujours des valeurs radian.
S'il vous plaît pourriez-vous me dire ce qui ne va pas avec mon code et comment résoudre ce problème?
C'est une approximation horriblement mauvaise de pi. ** First **, utilisez 'M_PI' s'il est défini, s'il vous plaît, ou bien définissez-le avec la précision des chiffres' LDBL_DIG_10'. ** Deuxième **, vous devriez convertir le _output_ de 'atan()' de rads en degrés, pas l'entrée (qui est juste une pente). ** Troisième **, vous devriez utiliser 'atan2 (y, x)' et non 'atan (y/x)'. –
Um ... Tout d'abord, votre texte dit que vous voulez mettre la valeur dans 'tan', mais le code l'utilise ensuite dans' atan'. Alors, est-ce pour 'tan 'ou pour' atan'? Décide toi. Deuxièmement, si c'est pour atan, alors pourquoi le convertis-tu? L'argument de 'atan' n'est pas un angle. C'est une valeur tangente. La tangente n'est ni "radians" ni "degrés". La tangente est une valeur sans unité. Convertir "radians en degrés" pour quelque chose qui n'est pas un angle n'a aucun sens. C'est le * résultat * de 'atan' que vous pourriez vouloir convertir en degrés. Le résultat, pas l'argument. – AnT