在C++中计算两点之间的角度,得到了奇怪的结果

Calculating angle between two points in C++, getting weird results

本文关键字:结果 之间 计算 C++ 两点      更新时间:2023-10-16

我正在visual studio 2013中尝试使用OpenCV C++计算两点之间的角度。一点是被跟踪的对象,另一点是我单击鼠标的位置。然而,在我的代码中,我得到了一个非常长且波动很大的答案,看起来并不正确。。。

代码摘录:

float angle = (atan2(mousex - posX, mousey - posY) * 180) / 3.14159265;
                sprintf_s(textA, "%d", angle);
                putText(imgOriginal, textA, Point(posX, posY + 20),
    FONT_HERSHEY_COMPLEX_SMALL, 0.8, Scalar(200, 200, 250), 1, CV_AA);

我已经包括了,但仍然没有结果。

我得到的结果在50368和10732之间波动(在同一地点)。

所以,如果有人能帮助我,我将不胜感激!

谢谢。

您的代码有很多问题。

正如@kuroineko在评论中提到的:

CCD_ 1首先取y分量。如果您按错误的顺序传递参数,则计算的角度为90°。此外,您的角度是float,因此在sprintf中使用%d将输出垃圾。