C++ 从点云生成多个正方形
我有一组点,我想从中得到所有可能的平方。 我该如何实现它(哪些方法?) 我按照下面的步骤依次迭代了点数组,它并没有给出所有可能的平方。我创建了一个主循环,在其中我有一个第二个循环,在每次迭代中给我3分C++ 从点云生成多个正方形,c++,square,C++,Square,我有一组点,我想从中得到所有可能的平方。 我该如何实现它(哪些方法?) 我按照下面的步骤依次迭代了点数组,它并没有给出所有可能的平方。我创建了一个主循环,在其中我有一个第二个循环,在每次迭代中给我3分 最好的问候也许有更有效的方法,但我的建议是首先计算每对点之间的距离: distance[N][N]; distance[i][j] = distance between point i and point j 接下来,搜索距离给定点i相同的点j和k。我们还必须检查角度是否为90°。你还得找到第四
最好的问候也许有更有效的方法,但我的建议是首先计算每对点之间的距离:
distance[N][N];
distance[i][j] = distance between point i and point j
接下来,搜索距离给定点i
相同的点j
和k
。我们还必须检查角度是否为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....
}
}
}
}
}
对于(int i=0;i有一个简单的例子(2D轴对齐):使用两条扫描线(一条在x方向,另一条在y方向)并从(xmin,ymin)迭代到(xmax,ymax)。如果两条扫描线都包含多个点,尝试构造一个正方形。(这只是一个草图)你能解释更多吗?拿一支铅笔和一张纸,画一个正方形