从2D平面上的点导出函数(多项式)

时间:2015-03-30 01:17:08

标签: java

作为我previous question的后续行动,我能够找到照片轮廓,细化它,然后接收2D点图。我现在正试图从这些观点中推导出一些群体,希望能够转向类似于以下内容的群体:

before

以下内容:

afterwithlines

或以下:

afterwithparabolas

规则是组必须是函数,这意味着给定任何x值,将其输入f(x),您将只收到一个y值。这通常意味着遵循垂直线测试,但f(y)结果只有一个x值也会起作用(在水平线测试之后)。我目前正在使用以下内容:

public void loadFunctions() {
    functions.clear();

    thinOutline();

    int i = 0;
    functions.add(new Function());
    for (int y = 0; y < originalHeight; y++)
        for (int x = 0; x < originalWidth; x++)
            if (thinned[x][y]) {
                if (functions.get(i).containsX(x)) {
                    functions.get(i).loadPoly();
                    functions.add(new Function());
                    i++;
                }
                functions.get(i).addPoint(x, y);
            }
}

这既有效又有效。我得到的所有线都遵循垂直线测试,但因为我从上到下迭代,我可以得到这样的东西:

uninteded

而不是:

intended

请注意,我只是要求解决方案将飞机上的点分组。我不需要求解函数的解决方案,这是我已经解决的另一个问题

0 个答案:

没有答案