给定 a、b、c 和 alpha 找到 x

Given a, b, c and alpha find x

我正在做图像处理以确定图片中两点之间的距离。它涉及相当多的几何学。我试图使用基本几何来解决但未能找到解决方案的问题之一如下。我已将问题转化为数学术语,以便更广泛的受众可以回答。

已知边 a、b、c 和角 alpha。找到长度 x 使用我发现的正弦和余弦定律: 使用余弦定律, 使用正弦定律

其中 beta 是与边 b 相对的角度

这不是一个小问题,也许应该问 Math.SE

但这是我的看法:

考虑三角形abx

b^2 = x^2 + a^2 - 2*a*x*cos(β)        #1

和三角形a1cx

c^2 = x^2 + a1^2 -2*a1*x*cos(β)       #2
sin(α)/α1 = sin(β)/c                  #3

要求解 xa1β 的三个非线性方程。

#1 中减去 #2 以消除 x^2(经过一些简化)

b^2 - c^2  = -2*x *(a-a1)*cos(β)+a^2 -a1^2        #4

#3#4

中用a1消除β
b^2 - c^2 = -2*x*(a-a1)*sqrt(1 - c^2/a1^2*sin(α)^2)+a^2-a1^2  #5

现在从#1中减去(a/a1)*#2以消除a1^2

b^2 - a*c^2/a1 = -(a-a1)*(x^2-a*a1)/a1            #6

方程 #5#6 是要求解 xa1 的两个非线性方程。

#5 我们有 x a1

x = a1*(a^2-a1^2-b^2+c^2)/(2*(a-a1)*sqrt(a1^2-c^2*sin(α)^2))    #7

不幸的是,在 #6 中使用上面的方法导致 六阶多项式 需要求解 a1

此时只能数值求解。 如果找到 a1,那么 #7 也会给我们 x

0 = 4*a^2*c^2*g^2
+ a1*(4*a*g^2*(a^2-b^2-c^2))
+ a1^2*(a^4-2a^2(b^2+c^2+4g^2)+b^4+2b^2(2g^2-c^2)+c^4)
+ a1^3*(-4a(a^2-b^2-c^2-g^2))
+ a1^4*(2(3a^2-b^2-c^2))
+ a1^5*(-4*a)
+ a1^6

其中 g = c*sin(α)