使用已知距离的其他两个点查找三角形的第三点

时间:2014-07-26 11:35:44

标签: math trigonometry

enter image description here

在上图中,我有三个点(x1,y1) (x2,y2) (x3,y3)

我知道x1,y1x2,y2的值。我知道(x1,y1)->(x3,y3)的欧氏距离 和(x2,y2)->(x3,y3)。有了这些信息,我如何才能找到(x3,y3)

我希望任何类似代码段或逻辑都有用......

我试图用圆圈方程解决这个问题,但我不知道如何继续。

1 个答案:

答案 0 :(得分:5)

我们可以使用一点三角函数来解决这个问题:

余弦定理(phi是第一点的内角):

d3^2 = d1^2 + d2^2 - 2 d1 d2 cos phi
cos phi = (d1^2 + d2^2 - d3^2) / (2 d1 d2)

对于给定的余弦,我们可以计算相应的正弦值:

cos^2 phi + sin^2 phi = 1
sin phi = +- sqrt(1 - cos^2 phi)

因此,第一点的角度有两种解决方案。一个积极的和一个消极的。

我们可以使用此角度将差异向量diff1 = (x2 - x1, y2 - y1)旋转为指向第三个点:

P3 = P1 + d2/d1 * / cos phi * (x2 - x1) - sin phi * (y2 - y1))
                  \ sin phi * (x2 - x1) + cos phi * (y2 - y1))

没有必要计算实际角度,因为我们只需要它的正弦和余弦。将正弦值的两个计算值都放入,并为P3获得两个可能的点。