拟合4个球体之间的矩形

时间:2014-05-17 19:16:33

标签: 3d gps geometry intersection

我想知道有没有人知道如何解决以下任务:

在每个高度不同的空间中给出4个极。它们的底座是凸四边形。从每个杆子有一根绳子连接到一个物体。定义了所有极点的3D坐标。知道物体的位置使得直接找到绳索长度。任务是解决相反的问题 - 知道4根绳索的长度,以找到它在3D空间中的位置。

有两个版本 - 简单版和硬版。容易的是当4根绳索连接到一个点时 - 问题可以通过找到4个球体的交点来解决,它们的中心位于杆的顶部并且使绳索的长度为4。我这样做与GPS的工作原理类似 - 两个球体的交点是一个圆圈。该圆与第3球的交点给出了2个结果。我使用第四个球体作为对照,找到两个中的哪个位于工作空间内。

困难的是当两极连接到形成另一个四边形的不同点时。我放弃了尝试解决它为一般四边形,所以我试图做一个矩形的大小(d1,d2)哪个平面应该始终平行于地板(蓝色区域下面 - XZ平面)哪些边平行于X和Z轴。这大大简化了任务。知道矩形的位置(中心)使其再次直接找到4根绳索的长度。但是我想找到矩形的位置,知道4根绳索的长度A,B,C,D。

我所做的是使用3个球体来找到一个矩形和第四个的位置作为对照。 3个球体的中心在一个平面上排列,所以我改变坐标系,使得第一个(A)的中心是原点O(0,0,0)。第二个(B)在距离为d的X轴上。第三个(D)位于坐标(p,q,0)。矩形的左下角位于第一个球体上,坐标为:

  A(x,y,z)           on 1st sphere      R1^2 = x^2 + y^2 + z^2

  B(x+d1,y,z)        on 2nd sphere      R2^2 = (x+d1-d)^2 + y^2 + z^2

  C(x,y1+d,z)        on 3rd sphere      R3^2 = (x-p)^2 + (y+d1-q)^2 + z^2

矩形的右下角B位于右边的第二个球体d1单位,第三个球体上的A和C d2单位。

这里我有3个未知数(x,y,z)和3个二次方程式,通过替换很容易解决,我发现

The X coordinate x = 0.5 * (R2^2 - R1^2 - (d1 - d)^2) / (d1 - d)

The Y coordinate y = 0.5 * (R4^2 - R1^2 - (d2 - q)^2 - p^2 + 2*p*x) / (d2 - q)

For the Z coordinate z1 = sqrt(R1^2 - x^2 - y^2) and z2 = -sqrt(R1^2 - x^2 - y^2)

使用第4个球体作为控制消除了z1或z2。改回原坐标系,我们可以找到矩形的实际中心。

然而,这只有在极点高度相等时才会起作用。将它们更改为不同会产生错误的结果这意味着计算中存在错误或者做出了一些错误的假设。我想不明白。有什么想法吗?

0 个答案:

没有答案