gpt4 book ai didi

C++ 角度、三角学

转载 作者:行者123 更新时间:2023-11-30 01:58:59 31 4
gpt4 key购买 nike

我需要一些帮助来计算点的角度: enter image description here

我需要计算从点 (0,0) 到从图像中提取的点的角度。 1 将是 0*,2 大约是 40-44* 等。

我的问题是 atan2 显示的值不正确。atan2 的当前输出是:

 1:41.867535 2:64.653824 3:52.915009 4:30.375608 5:13.328092 

如何从点 0,0 开始计算?我不能使用任何非标准库。

我还是做错了什么。我正在尝试:

   arrow1 = (M_PI - atan2(y, x) * (180 / M_PI);

输出:

   1: 131.867538  2: 154.653824  3: 142.915009  4: 120.375610  5: 103.328094 

和:

   arrow1 = (M_PI - atan2(y, -x) * (180 / M_PI); 

输出:

    1: 48.132465  2: 25.346176  3: 37.084991  4: 59.624393  5: 76.671906 

最佳答案

atan2(deltaY, deltaX) 返回的角度将是从 X 轴逆时针方向以弧度为单位的角度。

您当前正在使用 arrow1 = atan2(x,y) *180/M_PI;,因此您需要将其转换为使用 (y,x),然后也可以切换,这样您就可以从 -X 顺时针旋转角度,而不是从 +X 逆时针旋转。

这意味着点 1 的角度,如果您将其作为 atan2(-1, 0) 提供,将为 180 度。要达到你想要的角度,应该是:

double angleFromX = atan2(deltaY, deltaX);
double angle = M_PI - angleFromX;
double angleInDegrees = 180 * angle / M_PI;

关于C++ 角度、三角学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16653824/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com