Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何计算相交处两条直线之间的角度_C#_.net - Fatal编程技术网

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

C# 如何计算相交处两条直线之间的角度,c#,.net,C#,.net,我想知道如何计算交叉点处两条直线之间的agnle 请看下图。这里红线和绿线相交,我怎么计算那个角度 如果你知道两条线的方程式,你可以计算两条线的交点。使用该交点,您可以在其中一条直线上找到另一点,并获得其中一条直线到另一条直线的投影。此投影将提供两条线之间的角度 此外,如果您知道其中一条直线和另一条直线上的一个点的方程式,您仍然可以使用此方法找出两条直线之间的角度。计算两条直线的方向向量并将其规格化: d := (x2 - x1, y2 - y2) length = sqrt(d.x^2 + d

我想知道如何计算交叉点处两条直线之间的agnle

请看下图。这里红线和绿线相交,我怎么计算那个角度


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


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

计算两条直线的方向向量并将其规格化:

d := (x2 - x1, y2 - y2)
length = sqrt(d.x^2 + d.y^2)
d := (d.x / length, d.y / length)
然后,您可以使用多个选项来计算角度。一种简单的方法是使用dot产品:

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)

小学数学?你试过什么吗?我们来这里不是为了做你的工作,那就是寻找、思考和尝试。我有两条线的Cordinate红色x1、y1-x2、y2绿色x1、y1-x2、y2谢谢你,先生。我得到了它,除了d如何计算它?请参阅第一个代码片段。这是一个双分量向量。先生,我没有从d中得到什么想法:x2-x1,y2-y1,它的意思是d=x2-x1-y2-y1吗?不,这是两个分量。d、 x=x2-x1;d、 y=y2-y1。最后一个问题是输出是弧度还是度?