Math 利用未知固定点的给定距离进行三维三边测量
我是这个论坛的新成员,不是以英语为母语的人,所以请友好一些!:) 以下是我目前面临的挑战: 我想根据两个点之间的一组给定距离,计算三维欧几里德空间中未知点的(近似)相对坐标。 在我的第一种方法中,我想忽略可能的多个解决方案,只是随机选择第一个解决方案。 e、 g: 给定一组距离:(我认为这是创建一个以直角三角形为基础的金字塔) P1-P2-距离Math 利用未知固定点的给定距离进行三维三边测量,math,3d,triangulation,euclidean-distance,trilateration,Math,3d,Triangulation,Euclidean Distance,Trilateration,我是这个论坛的新成员,不是以英语为母语的人,所以请友好一些!:) 以下是我目前面临的挑战: 我想根据两个点之间的一组给定距离,计算三维欧几里德空间中未知点的(近似)相对坐标。 在我的第一种方法中,我想忽略可能的多个解决方案,只是随机选择第一个解决方案。 e、 g: 给定一组距离:(我认为这是创建一个以直角三角形为基础的金字塔) P1-P2-距离 1-2-30 2-3-40 1-3-50 1-4-60 2-4-60 3-4-60 步骤1: 现在,如何计算这些点的相对坐标? 我计算出第一个点是0
- 1-2-30
- 2-3-40
- 1-3-50
- 1-4-60
- 2-4-60
- 3-4-60
我计算出第一个点是0,0,0,所以第二个点是30,0,0。
之后,可通过查找点1和2的两个圆与点3的距离(分别为50和40)的交点来计算第三个点。我如何从数学上做到这一点?(尽管我把这些简单的数字当作我脑海中情况的简单表示)。此外,我不知道如何用正确的数学方法得出答案,第三点是30,40,0(或30,0,40,但我将忽略它)。
但获得第四分并不像那样容易。我想我必须使用3个球体来计算交叉点,但是我该怎么做呢 第二步: 在我弄明白如何计算这个“简单”的例子后,我想使用更多的未知点。。。对于每个点,到另一点的最小给定距离为1,以将其“链接”到其他点。如果因为坐标的自由度而不能计算坐标,我想忽略所有的可能性,除了我随机选择的一个,但是关于已知的距离 第三步: 现在,最后一个阶段应该是这样的:由于现实生活中的情况,每个测量的距离都有点不正确。因此,如果给定的一对点的距离超过1,则平均距离。但由于距离不精确,在确定点的精确(相对)位置时可能会有困难。所以我想把不同的可能位置平均到“最佳”位置
你能帮我一步一步地完成我的挑战吗 你需要使用三角学——特别是“余弦规则”。这将给你三角形的角度,让你解决第三和第四点 规则规定
c^2 = a^2 + b^2 - 2abCosC
式中,a、b和c是边的长度,c是对边c的角度
在你的例子中,我们需要1-2和1-3之间的角度-在(0,0,0)处相交的两条线之间的角度。它将是90度,因为你有3-4-5三角形,但让我们证明:
50^2 = 30^2 + 40^2 - 2*30*40*CosC
CosC = 0
C = 90 degrees
这是直线(0,0,0)-(30,0,0)和(0,0,0)-点3之间的角度;沿着这条线延伸1-3边的长度(50),你会得到第二个点(0,50,0)
找到你的第四点稍微有点困难。我能想到的最简单的算法是首先找到点的(x,y)分量,然后使用毕达哥拉斯的方法直接得到z分量
假设(x,y,0)平面上有一个点直接位于点4的“下方”——称之为点5。现在可以创建3个直角三角形1-5-4、2-5-4和3-5-4
你知道1-4,2-4和3-4的长度。因为它们是直角三角形,所以比率1-4:2-4:3-4
等于1-5:2-5:3-5
。使用三角法找到点5,“正弦规则”将给出1-2和1-4、2-1和2-4之间的角度等
“正弦规则”规定(在直角三角形中)
对于三角形1-2-4,虽然你不知道长度1-4和2-4,但你知道比率1-4:2-4
。同样,您知道其他三角形中的比率2-4:3-4
和1-4:3-4
我让你来解决第四点。一旦你有了这一点,你可以很容易地用毕达哥拉斯解出4的z分量,你将得到边1-4,1-5,长度4-5将是z分量。如果你知道节点之间的距离(系统的固定部分)和到标签的距离(移动的),你可以使用三边测量来找到x,y位置 我使用具有测距功能的纳米电子无线电模块完成了这项工作
关于我首先假设您知道所有点对之间的距离 正如您所说,您可以选择一个点(
A
)作为原点,沿x轴定位第二个点(B
),并沿xy平面放置第三个点(C
)。可以按如下方式求解C的坐标:
given: distances ab, ac, bc
assume
A = (0,0)
B = (ab,0)
C = (x,y) <- solve for x and y, where:
ac^2 = (A-C)^2 = (0-x)^2 + (0-y)^2 = x^2 + y^2
bc^2 = (B-C)^2 = (ab-x)^2 + (0-y)^2 = ab^2 - 2*ab*x + x^2 + y^2
-> bc^2 - ac^2 = ab^2 - 2*ab*x
-> x = (ab^2 + ac^2 - bc^2)/2*ab
-> y = +/- sqrt(ac^2 - x^2)
给定:距离ab、ac、bc
假定
A=(0,0)
B=(ab,0)
C=(x,y)bc^2-ac^2=ab^2-2*ab*x
->x=(ab^2+ac^2-bc^2)/2*ab
->y=+/-sqrt(ac^2-x^2)
要使其准确工作,您需要避免点{A,B,C}
在直线上或接近直线的情况
在3-空间中求解附加点类似——您可以扩展距离的毕达哥拉斯公式,取消二次元素,并求解得到的线性系统。但是,这并不能直接帮助您完成步骤2和步骤3
不幸的是,对于步骤2和步骤3,我也不知道一个性能良好的精确解。您的总体问题通常是过度约束(由于相互冲突的嘈杂距离)和欠约束(由于缺少距离)
您可以尝试使用迭代解算器:从随机放置所有点开始,将当前距离与给定距离进行比较,然后使用该距离调整点,以改进匹配。这是一种优化技术,所以我会查阅有关数值优化的书籍。你有所有点对之间的距离吗?
given: distances ab, ac, bc
assume
A = (0,0)
B = (ab,0)
C = (x,y) <- solve for x and y, where:
ac^2 = (A-C)^2 = (0-x)^2 + (0-y)^2 = x^2 + y^2
bc^2 = (B-C)^2 = (ab-x)^2 + (0-y)^2 = ab^2 - 2*ab*x + x^2 + y^2
-> bc^2 - ac^2 = ab^2 - 2*ab*x
-> x = (ab^2 + ac^2 - bc^2)/2*ab
-> y = +/- sqrt(ac^2 - x^2)