首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一种已知的算法可以根据n个未知点之间的已知距离来获得它们的相对位置?

有没有一种已知的算法可以根据n个未知点之间的已知距离来获得它们的相对位置?
EN

Stack Overflow用户
提问于 2019-10-11 00:44:06
回答 1查看 42关注 0票数 1

我在3D空间中有一组10个点。我所拥有的唯一信息是从每个点到每个点的距离。

我可以任意地将一个点设置为(0,0,0),将另一个点设置为我的X轴(距离,0,0)。

现在,似乎我应该能够使用这两个已知点来定位3D空间中的所有其他点(相对于前两个点)。

我有足够的信息来做这件事吗?是否有我应该查看的现有算法?

EN

回答 1

Stack Overflow用户

发布于 2019-10-11 02:39:32

对于前三点,我可以:

代码语言:javascript
复制
//store first one as zero point

        if (pos.id == 0)
        {
            pos.position = Eigen::Vector3d(0, 0, 0);    
        }

        //store second as X axis
        if (pos.id == 1)
        {
            pos.position = Eigen::Vector3d(<Distance from 1 to 2>, 0, 0);
        }

        //triangulate third from distances
        if (pos.id == 2)
        { 
            double c =  //distance from 3 to 1
            double b =  //distance from 3 to 2
            double a =  //distance from 1 to 2

            pos.position.x() = (c*c - b * b + a * a) / (2 * a);
            pos.position.y() = std::sqrt(c*c - pos.position.x()*pos.position.x());



        }

here中第三个点的代码

现在,我可以使用三个已知的点为以下几点运行多边化,如注释中所建议的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58327564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档