Найти контрольные точки Безье для кривой, проходящей через N точек - PullRequest
14 голосов
/ 10 октября 2011

Учитывая следующее хорошее решение для нахождения кубических контрольных точек Безье для кривой, проходящей через 4 точки:

Как найти контрольные точки для сегмента Безье с учетом начальных, конечных и 2-х точек пересечения в C # - AKA Cubic Bezier 4-точечная интерполяция

Интересно, есть ли прямое продолжение этого для прохождения кривой Безье через N точек, для N> 2 и, возможно, N ≤ 20?

Ответы [ 2 ]

14 голосов
/ 26 августа 2013

Это действительно старый вопрос, но я оставляю его здесь для людей, у которых в будущем будет такой же вопрос.

@ divanov упомянул, что нет кривой Безье, проходящей через N произвольных точек для N> 4.

Я думаю, что ОП спрашивал, как вычислить контрольные точки, чтобы объединить несколько кривых Безье, чтобы получить единую кривую, которая выглядит гладкой.

Этот pdf-файл покажет вам, как вычислитьконтрольные точки: http://www.math.ucla.edu/~baker/149.1.02w/handouts/dd_splines.pdf

, которые я нашел в этой статье http://corner.squareup.com/2012/07/smoother-signatures.html от Square о том, как они отображают плавную кривую, которая проходит через все точки выборки подписи, нарисованной мышью.

2 голосов
/ 19 августа 2012

Как правило, нет кривой Безье, проходящей через N произвольных точек, где N> 4. Следует рассмотреть возможность подбора кривой, чтобы минимизировать ошибку наименьших квадратов между вычисленной кривой Безье и заданными N точками данных. Что обсуждается, например, здесь .

...