我正在尝试平滑多边形的边缘。这适用于允许用户放大和缩小的地图应用程序。在高变焦时,我不需要所有细节,所以我平滑多边形以减少点数。我只是遍历所有点并删除距离最后一个X距离内的任何点。其中X在结果屏幕上适当地为1像素。
这似乎很有效,除了少数情况。例如,如果用户放大,我会放大矢量,同时异步加载细节。在加载额外细节时,用户会看到类似下图中的内容:
方形矢量多边形的角有些无意中圆了。
我正在寻找的是一种平滑或调整大小的算法,它会减少绘制多边形的点数,同时保留一些特征,例如角落。
答案 0 :(得分:3)
也许您可以使用类似Douglas-Peucker算法的内容。
它可用于通过删除不会“改变”整体形状的点来简化多边形线(其中公差值控制“太多”的含义)。
我希望这会消除多边形“直线”部分的点,同时保持尖锐的特征(如角落)不变。
希望这有帮助。
答案 1 :(得分:1)
您可以检查点两侧的两条线形成的角度,如果角度低于指定的阈值,则只删除该点。