繁体   English   中英

如何计算相交处两条线之间的角度

[英]How To Calculate angle between 2 lines at intersection

我想知道如何计算交点处两条线之间的角度。

请看下图。 这里红线与绿线交叉,我如何计算那个角度。?

在此处输入图片说明

您可以计算两条线的交点(如果您知道两条线的方程)。 使用该交点,您可以在其中一条线上找到另一个点,并将其中一条线投影到另一条线上。 该投影将为您提供两条线之间的角度。

此外,如果您知道一条直线和另一条直线上的点的方程,您仍然可以使用此方法找出两条直线之间的角度。

计算两条线的方向向量并将它们归一化:

d := (x2 - x1, y2 - y2)
length = sqrt(d.x^2 + d.y^2)
d := (d.x / length, d.y / length)

然后,您有多种选择来计算角度。 一种简单的方法是使用点积:

dot = dRed.x * dGreen.x + dRed.y * dGreen.y
angle = arc cos(dot)

如果您还想重建大于 180° 的角度(那么您将需要正确的线方向),您需要叉积:

cross = dRed.x * dGreen.y - dRed.y * dGreen.x
angle = atan2(cross, dot)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM