我有一组例如8分。我知道每个点之间的所有距离。有没有一种算法来重建这些点的三维坐标。从点间距重建3d点
回答
让我们假设点位于一般位置。没有3点在同一条线上,并且4点不在同一平面上。这不是一个限制,只是为了简化算法而不检查特殊情况。
交叉口,如果存在,四个球(在一般的位置)是一个单一的点。可以看出,因为两个球的交点是一个圆,三个球的交点是2个点,并且如果第四个球的中心不在其他三个球的中心的平面上,那么该球只能通过其中一个交点。
所以,如果距离是有效的,比形状可以通过增量加分它创建。
前4个点的位置定义方向。例如。第一点设置在原点上,第二点设置在+ X上,第一点,第三点设置在XY平面上的+ Y方向上的交点上,第三点设置在+ Z方向上的三点交点上。
附加点可以通过用距离他们在给定的第一4个点和半径中心的4个球体交点来定位。
你所试图做的是叫做Trilateration。在你继续之前进行一些研究可能是明智的,因为要正确对待它很困难。不过,我会从以下几点开始。
只要您具有实际的3D距离,以下内容应该可以工作。如果你不这样做,问题可能会出现。
- 取一个点p1,并将它赋值为原点(0,0,0)。
- 取另一个点p2,并将它放在(distance(p1,p2),0,0)
- 取另一个点p3,并根据它的位置(x,y,0)与p1和p2的距离。
- 根据距离p1,p2,p3的距离取另一个点p4,并放置在三维空间中。
- 重复步骤4直到没有剩余点。
前3个步骤是足够定向和固定的坐标。
求解步骤3和4可通过使用平面三角形的容易由于点是如何中心来完成,即形式。
谢谢,Trilateration是我一直在寻找的关键词! – Mario
谢谢,好记的关键字。 – Ante
事实上,Ante,我知道它基本上可以如何完成,但这个术语对我来说也是新的,在查看Triangulation时发现它。给出角度,计算距离。基本上需要做什么,但相反。 – Nuclearman
另一种可能性是度量Multidimensionale Skalierung。
- 1. 从多个2D点重建3D点?
- 2. 从两个2D点重建3D点?
- 3. 距离点3D
- 4. 如何调整一个3D点与另一个3D点之间的距离
- 5. 计算多个3d点的距离
- 6. 3D线点击3D点?
- 7. 玛雅从3D点
- 8. 从CSV文件创建3D散点图
- 9. 线段与三维点之间的最短距离(3D)
- 10. 我如何计算两点Unity 3D之间的距离?
- 11. 3d/2d点之间的标准化距离
- 12. 3D中每个2点之间的相互距离
- 13. 距离原点到空间中的点
- 14. 用3d点创建平面
- 15. 从3D点获取2D屏幕点
- 16. Numpy从指定点发现3D坐标距离
- 17. 测距点(动圈+时间)
- 18. R igraph顶点间距
- 19. 点之间的距离
- 20. 从地图上的一点到另一点之间的距离
- 21. 从点到另一点的距离
- 22. 如何在我的空间与偏航,间距和滚动和len的3D点
- 23. 更改UIPageControl点之间的间距
- 24. 3d点生成
- 25. 排序3d点
- 26. 点重建
- 27. 在两个3D点之间对齐BoxGeometry
- 28. 3D中半空间集合的顶点
- 29. 3D空间中的曲线拟合点
- 30. 如何在3D空间中插入点?
Sorta,问题是距离只包含相对位置的信息。您可以根据该信息制作3D形状,但是它的方向和位置(在3D空间中)无法根据距离确定。不知道这是否足够满足你的需求。 – Nuclearman
是的,我知道。我的目标是获得3D形状。任何算法? – Mario