小编con*_*dus的帖子

点集中最大的四边形

我正在寻找一种方法来找到面积最大的四边形。我已经计算了凸包的点并按顺时针方向对它们进行排序。我尝试过蛮力,但当然它太慢了。所以我在这里找到了最大三角形的算法:

除了暴力搜索之外,如何找到凸包中最大的三角形

看起来真的很不错,所以我尝试重新制作它。我有一个函数,可以通过将任何四边形划分为两个三角形来计算任何四边形的面积(在这个函数中,我对输入点进行排序,以确保我计算的是直角三角形)。这里是:

int n = convexHull.size();
int A = 0; int B = 1; int C = 2; int D = 3;
int bestA = A; int bestB = B; int bestC = C; int bestD = D;
while(true) { // loop A
      while(true) { // loop B
        while(true) { // loop C
          while(quadrangleArea(A, B, C, D) <=  quadrangleArea(A, B, C, (D+1)%n) ) { // loop D
              D = (D+1)%n;
          }
          if(quadrangleArea(A, B, C, D) <=  quadrangleArea(A, B, (C+1)%n, …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm geometry computational-geometry

5
推荐指数
1
解决办法
1328
查看次数

标签 统计

algorithm ×1

c++ ×1

computational-geometry ×1

geometry ×1