两条线之间的角度从同一点开始

时间:2010-08-31 20:09:57

标签: geometry angle atan2

假设我是2d平面上的任意两个点(p1(x1,y1),p2(x2,y1)),并且这两个点与中心(c(c1,c2))形成一条线。因此我在同一点上结束两行。我想知道如何计算这两条线之间的角度。我希望能够显示0-2pi的角度范围。也是0 - ( - 2pi),其中线由p1和c形成为线1和其他线2。 我确实有一些想法,使用atan2()但没有像我想要的那样工作。 感谢

2 个答案:

答案 0 :(得分:1)

将点转换为向量(从每个终点减去中心点)并使用dot product计算角度。

答案 1 :(得分:0)

找出中心和两点之间的增量矢量

d1 = p1-c;
d2 = p2-c;

您可以使用atan2来获取每个角度:

angle1 = atan2(d1.Y, d1.X)
angle2 = atan2(d2.Y, d2.X)

你理想的角度就是差异:

a = angle2-angle1;

根据您是否希望角度表示为0到2pi,或-2pi和0,您可以使用while循环来减去2pi / 2pi以获得所需的表示,尽管您应该只在向人类展示角度时需要这样做