我有一条 2D 闭合折线,相当平滑。但是,定义多段线的顶点的间距不相等。有时两个会非常接近,有时多达四个会非常接近。
我想平滑折线,但常规平均算法往往会缩小区域:
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);
}
我的折线包含数千个点,两个相邻线段之间的角度通常小于 1 度。
有没有更好的方法来平滑这些曲线,可以更均匀地间隔顶点,而不会对区域造成太大影响?