我在这个链接中找到了一种在 2-D 中进行三边测量的算法。但是公式太复杂了。这里发生了什么?你能把它分解成点积、叉积、距离等术语吗?
1 回答
设P为未知点。(粗体表示 2D 向量。)
写出圆 1 和 2 的隐式方程:
( P - P1 )² = d1²
( P - P2 )² = d2²
按成员减去并重新排列:
2.(P2 - P1)。P = d1² - d2² + P2 ² - P1 ²
与圆圈 1 和 3 类似:
2.(P3 - P1)。P = d1² - d3² + P3 ² - P1 ²
仔细观察,您会注意到这形成了一个包含两个未知数的两个线性方程组:
2.(X2 - X1).X + 2.(Y2 - Y1).Y = d1² - d2² + P2 ² - P1 ²
2.(X3 - X1).X + 2.(Y3 - Y1).Y = d1² - d3² + P3 ² - P1 ²
使用Cramer 规则,或者如果您坚持使用向量微积分,请按以下方式计算。
将系统改写为:
AP = 一个
BP = b
在 xy 平面上计算垂直于A和B的向量,使用叉积A' = A /\ 1z和B' = B /\ 1z,并将P表示为这些的线性组合:
P = 你。A' + v 。乙'
用A和B进行点积简化后得到:
AP = a = v。AB'
BP = b = u。巴'
注意AB' = A. ( B /\ 1z ) = 1z。( A /\ B ) = - 1z。( B /\ A ) = - B. ( A /\ 1z ) = - BA' (混合产品)。
总而言之:
P = [ (- b. A + a. B ) /\ 1z ] / [ 1z. ( A /\ B )]
(这是对克莱默结果的重写。)