首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从sin/cos转换中获取角度

从sin/cos转换中获取角度
EN

Stack Overflow用户
提问于 2012-12-29 13:57:48
回答 5查看 30.2K关注 0票数 27

我想反转一个sin/cos操作来恢复一个角度,但是我不知道我应该怎么做。

我在弧度的角度上使用了sincos来获得x/y向量:

代码语言:javascript
复制
double angle = 90.0 * M_PI / 180.0;  // 90 deg. to rad.
double s_x = cos( angle );
double s_y = sin( angle );

在给定s_xs_y的情况下,有可能恢复角度吗?我认为atan2是要使用的函数,但我没有得到预期的结果。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-12-29 14:05:51

atan2(s_y, s_x)应该会给你一个正确的角度。也许你颠倒了s_xs_y的顺序。此外,您还可以分别在s_xs_y上直接使用acosasin函数。

票数 28
EN

Stack Overflow用户

发布于 2014-05-23 18:38:00

我使用acos函数从给定的s_x cosinus恢复角度。但是因为几个角度可能导致相同的余弦(例如cos(+60°) = cos(-60°) = 0.5),所以不可能直接从s_x获取角度,所以我还使用s_y的符号来获取角度的符号。

代码语言:javascript
复制
// Java code
double angleRadian = (s_y > 0) ? Math.acos(s_x) : -Math.acos(s_x);
double angleDegrees = angleRadian * 180 / Math.PI;

对于(s_y == 0)的特定情况,取+acos或-acos并不重要,因为这意味着角度是0°(+0°或-0°是相同的角度)或180°(+180°或-180°是相同的角度)。

票数 10
EN

Stack Overflow用户

发布于 2012-12-29 14:07:15

在数学中是对sin和cos的反向操作。这是arcsin和arccos。我不知道你用的是什么编程语言。但通常情况下,如果它有cos和sin函数,那么它就可以有相反的函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14079127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档