Я пытаюсь сгладить края многоугольника. Это для картографического приложения, которое позволяет пользователю увеличивать и уменьшать масштаб. При большом увеличении мне не нужны все детали, поэтому я сглаживаю многоугольник, чтобы уменьшить количество точек. Я просто перебираю все точки и удаляю любую точку, которая находится на расстоянии X от последней. Где X соответствует 1 пикселю на получающемся экране.
Кажется, что это прекрасно работает, за исключением нескольких случаев. Например, если пользователь увеличивает масштаб, я увеличиваю вектор, одновременно загружая детали асинхронно. Пока загружается дополнительная деталь, пользователь видит что-то похожее на изображение ниже:
У угловых векторных многоугольников их углы несколько случайно закруглены.
То, что я ищу, - это плавный алгоритм или алгоритм изменения размера, который уменьшит количество точек для рисования многоугольника, сохраняя при этом некоторые функции, такие как углы.