simplify-js icon indicating copy to clipboard operation
simplify-js copied to clipboard

Numeric parameter quality (0..1) instead boolean highestQuality

Open dom1n1k opened this issue 9 years ago • 1 comments

Попробовал библиотеку, и возникло ощущение слишком большой разницы между вариантами highestQuality on/off. Хочется чего-то промежуточного.

Идея состоит в том, чтобы превратить качество из бинарного флага в плавно изменяемый параметр от 0 до 1. Максимальное качество это quality=1, максимальная скорость - quality=0. Модификация заключается в умножении tolerance для функции simplifyRadialDist (только для неё, основной алгоритм не трогаем) на весовой коэффициент 1 - quality. Подбором параметра можно получить качество, близкое к максимальному, при незначительной потере скорости.

Важно отметить, что обратная совместимость при этом не ломается. Если передать параметр true, он преобразуется в 1, а функция отработает совершенно эквивалентно своему предыдущему поведению. Аналогично и с false/0. К минусам можно отнести то, что зависимость там нелинейная, и quality=0.5 не обязательно соответствует интуитивному ощущению середины между 0 и 1.

dom1n1k avatar Feb 14 '16 23:02 dom1n1k

Nice idea! Please add a test for the new behavior and I'll merge. I think it's OK that the parameter is not linear.

mourner avatar Feb 15 '16 08:02 mourner