Algorithm 将形状追踪到最多n条边的多边形中

Algorithm 将形状追踪到最多n条边的多边形中,algorithm,geometry,Algorithm,Geometry,我正在寻找一种算法,它可以在曲面上找到一个不规则的形状,可能不是太不规则,比如一个被压扁的圆,并在形状周围追踪一个最多有n条边的多边形。“n”最大值可能基于形状的面积。我会这样做: 计算所有曲线段的切线角ang及其变化dang 您可以使用或atan2来实现此目的 ang[i] = atanxy(x[i]-x[i-1],y[i]-y[i-1]); dang[i] = ang[i]-ang[i-1]; 查找拐点(黑色) 在这些点上,dang的符号正在发生变化 dang[i-1]*dang[i+1

我正在寻找一种算法,它可以在曲面上找到一个不规则的形状,可能不是太不规则,比如一个被压扁的圆,并在形状周围追踪一个最多有n条边的多边形。“n”最大值可能基于形状的面积。

我会这样做:

  • 计算所有曲线段的切线角
    ang
    及其变化
    dang

    您可以使用或
    atan2
    来实现此目的

    ang[i] = atanxy(x[i]-x[i-1],y[i]-y[i-1]);
    dang[i] = ang[i]-ang[i-1];
    
  • 查找拐点(黑色)

    在这些点上,
    dang
    的符号正在发生变化

    dang[i-1]*dang[i+1]<0.0
    
    别忘了

    |ang[i]-angavg|<=PI
    

    输入数据是什么?点集、多边形、光栅图像?期望的准确度是多少?它是与形状表匹配还是只需要找到形状?您所说的形状闭合区域/多边形或曲面上的特征是什么意思?什么空间?2D,3D,N-D?添加输入和输出的示例图像输入数据基本上是不规则的椭圆形斑点,例如小孩会用手指勾勒出东西的轮廓。只需将周长上的一组点缩减为一组三角形,即可定义水滴的近似值。二维空间。输入是矢量或光栅,有多少尺寸???!!!输出为矢量和二维-多边形-例如,如果输入为圆形,最大边数为8,则输出为八角形。在这种情况下,请检查我的答案是否符合您的需要/wantplus–Douglas–Peucker_算法,以便在需要时进行线简化
    |ang[i]-angavg|<=PI