如何通过3D点找到一条线?

时间:2015-11-04 07:07:03

标签: javascript 3d three.js linear-regression best-fit-curve

图片更容易解释。我有这些绿点:

Points (no line)

我希望沿着这条红线得到几点:

Points (with line)

这是一个顶视图,但我为每个点都有完整的XYZ坐标。我还有哪个顶点连接到哪个顶点。

看起来你几乎可以看到每条绿色边缘的中点并在它们之间画一条线,但你可以看到它在接近结束时是如何真正起作用的。

我是否可以使用算法通过这些3D点找到最佳拟合线?

如果有所作为,我会使用Three.js。

1 个答案:

答案 0 :(得分:1)

此任务等同于噪音抑制。 最简单的算法(不会过滤数组的结尾):

double array[];
int count, depth;
// 1 < depth < count

for (int i = 0; i < count - depth; i++)
{
    double sum = 0;
    for (int j = 0; j < depth; j++)
    {
        sum += array[i + j];
    }
    array[i] = sum / depth;
}

你可以找到更多信息googling中位数滤波器和噪声抑制