c++ - 用 x 轴计算角度的最快方法

标签 c++ angle

计算直线与 x 轴之间角度的最快方法是什么?

我需要定义一个函数,它在 PI:2PI 区间内是单射的(我必须在最上面的点和下面的任何点之间形成角度)。

PointType * top = UPPERMOST_POINT;
PointType * targ = TARGET_POINT;

double targetVectorX = targ->x - top->x;
double targetVectorY = targ->y - top->y;

第一次尝试

//#1
double magnitudeTarVec = sqrt(targetVectorX*targetVectorX + targetVectorY*targetVectorY);
angle = tarX / magTar;

第二次尝试

//#2 slower
angle = atan2(targetVectorY, targetVectorX);

我不需要直接的角度(弧度或度数),任何值都可以,只要通过从 2 个点比较这些值,我就可以判断哪个角度更大。 (例如,示例一中的角度在 -1 和 1 之间(它是余弦参数))

最佳答案

像 atan2 一样检查 y 是否为零;那么商 x/y 就足够了。 (假设我理解正确)。

关于c++ - 用 x 轴计算角度的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7868115/

相关文章:

c++ - 如何将此 C++ 函数转换为 Objective-C?

algorithm - 用于存储角度间隔的数据结构

java - 无法让子弹以正确的角度射击?

javascript - Webgl Angular 循环非常慢

c++ - 非静态成员引用的二维数组问题

c++ - 将 cv::Mat 与多维 FFTW3 结合使用

ios - iPhone 倾斜角度 - 使用陀螺仪?

wolfram-mathematica - 使用Mathematica从笛卡尔图到极坐标直方图

c++ - 我收到错误 "expression can' t 被用作函数“

c++ - openGL光照随相机旋转