適度に滑らかな 2D の閉じたポリラインがあります。ただし、ポリラインを定義する頂点は等間隔ではありません。2 人が非常に接近することもあれば、4 人が非常に接近することもあります。
ポリラインを滑らかにしたいのですが、通常の平均化アルゴリズムでは領域が縮小する傾向があります。
for (int i = 0; i < (V.Length-1); i++)
{
PointF prev = V[i-1]; //I have code that wraps the index around.
PointF next = V[i+1];
PointF pt = V[i];
float ave_x = one_third * (prev.X + next.X + pt.X);
float ave_y = one_third * (prev.Y + next.Y + pt.Y);
smooth_polyline[i] = new PointF(ave_x, ave_y);
}
ポリラインには数千のポイントが含まれており、隣接する 2 つのセグメント間の角度は通常 1 度未満です。
領域にあまり影響を与えずに頂点をより均等に配置する、これらの曲線を滑らかにするより良い方法はありますか?