Какой есть алгоритм для вычисления длины кривой Безье?
Приветствую!
Нужно рассчитать длину кривой Безье,
сделал в лоб по с помощью Википедии
т.е. разделив кривую на прямые отрезки с шагом 0.01
и вот тут и заключается суть проблемы - на длинных кривых слишком большие погрешности.
если шаг ставлю 0.0001 погрешность устраивает,
но тогда процесс слишком долгий для одной прямой, а когда их 100, то можно успеть покурить.
Пробовал сначала разбивать с шагом 0.1 смотреть длину, если длинная, то разбивать уже с шагом 0.0001 но лишь немного увеличил производительность
Интересует, есть ли какие алгоритмы для вычисления длины без разбиения на отрезки?
Pavel K: так вы интегрировали численно. при аналитическом интегрировании получается формула не требующая цикла, длинна будет измерена в 1 действие, не все формулы можно проинтегрировать аналитически и их интегрируют численно, но кривые безъе не относятся к ним.
Pavel K: шило на мыло никак получиться не может. Аналитическое решение, при условии его существования, дает абсолютно точный ответ, погрешность которого упирается в точность числа с плавающей точкой. В поиске, который скинул Василий, первая же ссылка выводит на полезный метериал: www.mathprofi.ru/dlina_dugi_krivoi.html Если с матаном сложно, то этот же сайт содержит все необходимые материалы для подтягивания.