对于从橙色中心到黑色圆圈的线的长度 s,您可以得到公式:
s^2 = (x + r * cos(a))^2 + (y + r * sin(a))^2
其中 x 是黑色圆圈中心的 x 分量的绝对值,y 是相应的 y 分量。 r 是黑色圆圈的半径。 a 是黑色圆圈上交点的角度(通常会有两种解)。
扩展给定的公式会导致:
s^2 = x * x + r * r * cos(a)^2 + 2* r * x * cos(a)
+ y * y + r * r * sin(a)^2 +2 *r * y * sin(a)
作为
r * r * cos(a)^2 + r * r * sin(a)^2 = r * r
我们有
s^2 - x^2 - y^2 - r^2 = 2 *r * (x * cos(a) + y * sin(a)) (1)
除以2*r 并重命名等式 p 的左侧(p 仅包含已知值)导致
p = x * cos(a) + y * sin(a) = SQRT(x * x + y * y) * sin(a + atan(x / y))
==>
a = asin(p /SQRT(x*x + y*y)) + atan(x / y) (2)
让我们举一个例子,从您的绘图中获取近似值:
x = 5
y = -8
r = 4
s = 12
那么(1)将是
144 = 25 + 16 + 64 + 8 * (5 * cos(a) - 8 * sin(a)) ==>
39 / 8 = 5 * cos(a) - 8 * sin(a) =
SQRT(25 + 64) * sin(a + atan(5 / -8)) ==>
0.5167 = sin(a + atan(5 / -8))
asin(0.5167) = a - 212°
asin(0.5167) 有两个值,第一个是 31.11°,第二个是 148.89°。这导致了以下两种解决方案:
a1 = 243.11°
a2 = 360.89° 或取该值取模 360° ==> 0.89°
我刚刚使用余弦定律找到了一个更简单的解决方案:
c * c = a * a + b * b - 2ab * cos(gamma)
你得到一个由三个点定义的三角形:两个圆的中心点和黑色圆上的交点。所有三个边的长度都是已知的。
所以我们得到:
cos(gamma) = (a * a + b * b - c * c) / 2ab
如果我们选择橙色圆圈中心的角度为伽马,我们得到
使用这个值,我们得到:
cos(gamma) = (89 + 144 - 16) / (2 * sqrt(89) * 12) = 0.9584
gamma = acos(0.9584) = +/- 16.581°
'