从点云生成多个正方形

Generate multiple square from points cloud

我有一组点,我想从中得到所有可能的平方。 我该怎么做才能实现它(哪些方法?)。

我按照以下步骤进行,我连续迭代点数组,但它没有给出所有可能的平方。我创建了一个主循环,里面有一个第二循环,每次迭代都给我 3 分

此致

也许有更有效的方法,但我的建议是从计算每对点之间的距离开始:

distance[N][N];
distance[i][j] = distance between point i and point j

接下来搜索与给定点 i 距离相同的点 jk。我们还必须检查角度是否为 90°。而且你还得找到第四点..

for (int i=0;i<N;i++){
    for (int j=i+1;j<N;j++){
        for (int k=j+1;k<N;k++){
            if (abs(distances[i][j] - distances[i][k]) < eps){
                if (abs(distances[j][k] - sqrt(2)*distances[i][j]) < eps){
                    ... find a point with same distance from k and j....
                }
            }
        }
    }     
}

...好吧,在写作时我意识到这可能完全矫枉过正(太多循环......)但它可能是一个起点。 }