我有一組例如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