从点云生成多个正方形

Generate multiple square from points cloud

本文关键字:正方形      更新时间:2023-10-16

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

我按照以下步骤进行,我依次迭代点数组,但它并没有给出所有可能的平方。我创建了一个主循环,在里面我有一个第二个循环,每次迭代给我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....
                }
            }
        }
    }     
}

好吧,在写作的时候,我意识到这可能完全是小题大做(循环太多了),但这可能是一个起点。}