从点云生成多个正方形
Generate multiple square from points cloud
我有一组点,我想从中得到所有可能的平方。
我该怎么做才能实现它(哪些方法?)。
我按照以下步骤进行,我连续迭代点数组,但它没有给出所有可能的平方。我创建了一个主循环,里面有一个第二循环,每次迭代都给我 3 分
此致
也许有更有效的方法,但我的建议是从计算每对点之间的距离开始:
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....
}
}
}
}
}
...好吧,在写作时我意识到这可能完全矫枉过正(太多循环......)但它可能是一个起点。
}
我有一组点,我想从中得到所有可能的平方。 我该怎么做才能实现它(哪些方法?)。
我按照以下步骤进行,我连续迭代点数组,但它没有给出所有可能的平方。我创建了一个主循环,里面有一个第二循环,每次迭代都给我 3 分
此致
也许有更有效的方法,但我的建议是从计算每对点之间的距离开始:
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....
}
}
}
}
}
...好吧,在写作时我意识到这可能完全矫枉过正(太多循环......)但它可能是一个起点。 }