Math.Asin проблема - PullRequest
       1

Math.Asin проблема

1 голос
/ 09 февраля 2011

Я вычисляю значение (которое должно отражать грех угла между вектором направления и плоскостью XZ), например,

angle_between_direction_and_Xplane = (Math.Abs(enemyShip_.orientation.Forward.Y) /  Math.Sqrt(Math.Pow(enemyShip_.orientation.Forward.X, 2) + Math.Pow(enemyShip_.orientation.Forward.Y, 2) + Math.Pow(enemyShip_.orientation.Forward.Z, 2)));

, и, похоже, оно работает нормально.Когда объект перпендикулярен земле, angle_between_direction_and_Xplane близок к 1, а когда он параллелен плоскости XZ, он близок к 0.

Когда я применяю Math.Asin, я хотел бы получить угол (например, 70 или 20 градусов), но вместо этого я получаю значения около 1.Я использую это неправильно?

Ответы [ 2 ]

13 голосов
/ 09 февраля 2011

Асин возвращает угол в радианах. Умножьте на 180 / pi, чтобы получить угол в градусах.

1 голос
/ 09 февраля 2011

Похоже, вы забыли, что математические библиотеки используют радианы для углов, а не градусов.Примените соответствующее преобразование и посмотрите, лучше ли оно соответствует вашей интуиции.

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