Как рассчитать обратный загар? - PullRequest
0 голосов
/ 20 июля 2009

Я использую UIAcceleration для вращения. У меня есть противоположная сторона, смежная сторона, но я хочу вычислить tan-1 (y / x) обратный загар.

Ответы [ 3 ]

9 голосов
/ 21 июля 2009

Всегда используйте atan2 (y, x) вместо atan (y / x) по двум причинам. Один из них упоминается Дэвидом Маймудесом (проблемы с x = 0). Другое дело, что atan2 () работает с полным диапазоном от - & pi; to + & pi ;, тогда как atan () выдает только выходные данные между - & pi; / 2 и + & pi; / 2, и не может различить (x, y) = (2,2) и (x, y) = ( -2, -2) поскольку вы теряете информацию о знаке при делении и передаете только отношение y / x в atan ().

4 голосов
/ 20 июля 2009

Доступны стандартные функции C math.h:

#include <math.h>

...
float theta = atan2f(y, x);
...
3 голосов
/ 20 июля 2009

atan2(y, x) - это то же самое, что и atan(y/x), но он может правильно работать в случае, когда x = 0 (т.е. вертикальная линия идет вверх или вниз), не имея дело с положительной или отрицательной бесконечностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...