【发布时间】:2013-01-02 02:38:02
【问题描述】:
我有一些 3D 点,它们大致但清楚地形成了一个圆的一部分。我现在必须确定最适合所有点的圆。我认为必须有某种最适合的最小二乘,但我不知道如何开始。 这些点按照它们在圆上的位置进行排序。我在每个点上也有一个估计的曲率。 我需要圆的半径和平面。 我必须使用 c/c++ 或使用外部脚本。
【问题讨论】:
-
你有没有尝试过?
-
不,只是在网上搜索了有关最小二乘拟合圆的信息。我发现的大部分都是二维的,所以没有帮助。
-
您可以将 2D 算法移植到 3D 中。您有 两个 变量:圆心和半径。中心转换为三个坐标,因此总体而言,您需要使用最小二乘法优化 四个 变量(三个坐标和半径)。
-
@alestanis 实际上是六个实变量:圆心和圆的法线向量。 ——但这不是问题,更复杂的是将点到圆的距离的定义推广到3d。
-
我在想一个球体,我现在明白了。也许有一种简单的方法可以在第一步中检测我们在哪个平面上,旋转我们的坐标,然后在第二步中仅使用两个坐标找到圆?
标签: c++ c geometry least-squares