使用matlab到球体中心的最小距离

Posted

技术标签:

【中文标题】使用matlab到球体中心的最小距离【英文标题】:minimum distance to the center of a sphere using matlab 【发布时间】:2011-09-06 01:32:50 【问题描述】:

给定 2 个点 A 和 B,它们属于具有给定半径 R 的球体。 我想找到其中心与给定点 G 的距离最小的球体。

谢谢

【问题讨论】:

【参考方案1】:

由两点和半径定义的球心是一个圆。您可以连接 C(圆心)和 G,并在圆平面上创建 90° 投影。最小距离是投影与圆相切 90° 的位置。有两种解决方案。您必须选择较小的。

【讨论】:

【参考方案2】:

您想要的点 C 在包含 A、B 和 G 的平面内。您计算

AG = G - A;
BG = G - B;
N = cross(AG, BG);
N = N / norm( N ); % the normal to the plane

现在你在这个平面上求解 C。三个方程:

dot((C-G), N)=0;
sqrt(sum(A-C).^2) = R;
sqrt(sum(B-C).^2) = R;

三个未知数是 C 的三个元素。你最终得到两个解,所以计算到 G 的距离并选择更接近的一个。

【讨论】:

以上是关于使用matlab到球体中心的最小距离的主要内容,如果未能解决你的问题,请参考以下文章

生成给定距离的坐标,距中心的角度

如何在立方体中创建一个均匀的spheries随机分布?

找到一个点在内部并且最接近的球体的最快方法

使用KMeanCluster对多个区域进行聚类,并结合Matplotlib绘制中心点最大最小距离点

路径规划基于遗传算法求解多中心VRP问题matlab源码

查找地理点的聚类(距离聚类中心 y 距离内的最小 x 点)的算法