改变atan2()的零角度或类似位置

时间:2013-09-18 16:10:52

标签: image-processing geometry

我在图像中有一组点,我想按顺时针方向订购它们/获取属性。订购它们的条件将是它们的角度。

我需要选择角度为0的起点,然后按顺时针顺序选择其他点(增加角度)。但是,我使用atan2(2因为角度范围更好)来获得角度,但零角度总是在水平轴上。如何将零角度的轴设置在起点的位置?

非常感谢! 赫

1 个答案:

答案 0 :(得分:2)

如果计算起始角度:

double theta_0 = atan2(y[0], x[0]);

然后你可以从后续角度中减去它,并使用fmod得到模数为2π的相对角度,从而获得相对于起始角度的顺时针正角度:

double theta_i = fmod(atan2(y[i], x[i]) - theta_0, M_PI * 2.0);