我需要一个 Excel 公式,在给定大多数其他信息的情况下,它可以帮助我找到三角形中的第三个点。这不是家庭作业,这意味着我不需要只做一次。我需要一种一致的方法来在接下来的几个月内反复完成它,尽可能快速和准确,所以我希望 Excel 或类似的东西是最好的工具。我的印象是,这个问题可能总是有两个有效的答案。如果是这样,并且如果可能的话,四个公式,两个用于可能的 X 值,两个用于可能的 Y 值,就可以了。在大多数情况下,找出哪个是正确的并不困难。我主要关心的是能够准确地重复地做到这一点。
所有点都在二维笛卡尔系统上(具有 X 和 Y 值),可以是负数或正数。三角形是随机的,因此必须假定为不等边三角形。对于每个三角形,我有两个笛卡尔点,以及从这些点到第三点的距离。由此我可以轻松确保在其他列中,我有所有三条边的长度,以及所有三个内角的弧度和度数格式,以及两个笛卡尔点的 X 和 Y 值。如何使用 Excel 公式得出两个有效第三点的剩余 X 和 Y 值?
我将在这里列出我所拥有的列/变量以便更清楚,以防您想使用我的字母而不是传统的符号。
point 1:
A = X1
B = Y1
point 2:
C = X2
D = Y2
E = distance from p1 to p2 (calculated from other values)
F = distance from p1 to p3
G = distance from p2 to p3
H = inner angle at p1 in radians (calculated from other values)
I = inner angle at p2 in radians (calculated from other values)
J = inner angle at p3 in radians (calculated from other values)
The cells that will contain my formulas:
K = possible X3
L = other possible X3
M = possible Y3
N = other possible Y3
我的假设是,X3有两个公式,Y3有两个公式,每个公式都会产生一个可能的解决方案,但是我不是100%确定这是真的。
我不太懂数学,但我的直觉是,我可以以某种方式抓住我的一个距离公式,例如计算距离 E 的公式:
=SQRT(((C-A)^2)+((D-B)^2))
并操纵它来求解一个 X、Y 集、给定距离和另一个 X、Y 集,但每次我尝试这样做时,我都会在找到一个可行的公式之前迷失或犯错误。
是否可以使用上面的列/变量和一组四个 Excel 公式以简单的方式完成此操作?谢谢。
答案1
这是一组可能的公式,基本上可以实现 Dane 所描述的功能。已在 Google Docs 中测试。
A= ____ // X1
B= ____ // Y1
C= ____ // X2
D= ____ // Y2
E= sqrt((A-C)^2+(B-D)^2) // Distance 12
F= ____ // Distance 13
G= ____ // Distance 23
H= acos((E^2+F^2-G^2)/(2*E*F)) // Angle 1
I= acos((E^2+G^2-F^2)/(2*E*G)) // Angle 2
J= acos((F^2+G^2-E^2)/(2*F*G)) // Angle 3
K= A+F*cos(atan2(C-A,D-B)+H) // X3
L= A+F*cos(atan2(C-A,D-B)-H) // X3Alt
M= B+F*sin(atan2(C-A,D-B)+H) // Y3
N= B+F*sin(atan2(C-A,D-B)-H) // Y3Alt
答案2
要计算第三点,您需要以下内容:
- 一个起点
- 距离
- 与 x 轴的角度
然后你将使用 Excel=sin()
或=cos()
函数以及数学解释在这个数学问题中。
诀窍在于计算 (3) 与 x 轴的角度。这个 Stack Exchange 问题告诉你如何确定已知边与 x 轴的角度。您将使用 Excel 的=atan2()
。从这里,您可以添加或减去内角(例如,您的值 H)。在这里添加或减去将给您两个不同的点。
使用弧度与角度时要小心。
玩得开心并让我们知道你的想法!
答案3
您可以根据每个已知点绘制半径为的圆,然后查看它们的相交位置。如下所示。