2010-08-31 78 views
0

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

回答

1

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

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来获得你想要的表示,尽管你只需要在向人展示角度时做到这一点