1

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

4

2 回答 2

2

找到中心和两点之间的增量向量

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 以获得您想要的表示,尽管您应该只需要做这在向人类展示角度时

于 2010-08-31T20:17:36.623 回答
1

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

于 2010-08-31T20:15:12.177 回答