Изменения

Перейти к: навигация, поиск

Упрощение полигональной цепи

32 байта убрано, 12:35, 20 мая 2012
Описание
Алгоритм рекурсивно делит полилинию. Входом алгоритма служат координаты всех точек между первой и последней включая их, а так же <tex>\varepsilon</tex>. Первая и последняя точка сохраняются неизменными. После чего алгоритм находит точку, наиболее удалённую от отрезка, состоящего из первой и последней (оптимальный способ поиска расстояния от точки до отрезка рассмотрен ниже). Если точка находится на расстоянии, меньше, чем <tex>\varepsilon</tex>, то все точки, которые ещё не были отмечены к сохранению, могут быть выброшены из набора, и получившаяся прямая сглаживает кривую с точностью не ниже <tex>\varepsilon</tex>.
Если же расстояние больше <tex>\varepsilon</tex>, то алгоритм рекурсивно вызывает себя на наборе от начальной до данной и от данной до конечной точек (это означает, что данная точка будет отмечена к сохранению).
По окончанию всех рекурсивных вызовов итоговая полилиния строится только из тех точек, что были отмечены к сохранению.
Анонимный участник

Навигация