Как рассчитать контрольные точки в кубической кривой Бейзера - PullRequest
12 голосов
/ 09 мая 2011

При прохождении программы кривой кубического бейзера
Я обнаружил, что он использует конечные точки как (10,10,0) и (0,1,0) и другие контрольные точки как (5,10,2) и (-10, -5, -2). Я не могу чтобы понять, как они получили эти другие контрольные точки
Пожалуйста, помогите мне с любой формулой или методом, чтобы найти их
Edit: -
если вы хотите плавно провести кривую Безье через N точек с N> 2, как получить промежуточные контрольные точки.

Ответы [ 2 ]

7 голосов
/ 09 мая 2011

Как сказал в своем комментарии Велисарий, контрольные точки фактически являются входными параметрами для кривой Безье.В статье в википедии есть несколько приятных анимаций, которые визуализируют процесс рисования кривой и то, как для нее используются контрольные точки.

В качестве резюме, кубическая кривая Безье состоит из 4 точек.Давайте назовем их Start, End, Control1 и Control2.Кривая начинается с Start, после линии от Start до Control1.Но чтобы достичь конечной точки End, она должна отклониться от этого пути и приблизиться к линии от Control2 до End, пока не достигнет точки End.

Таким образом, вы можете «вычислить»контрольные точки, которые вам понадобятся для конкретной кривой, например, нарисовав нужную кривую на листе бумаги.Контрольные точки должны лежать где-то на кривой касательные в начальной и конечной точках, чтобы создать кривую Безье, подобную вашему эскизу.

Вот иллюстрация, которую я сделал с помощью Paint (что на самом деле хорошо для игры с этим, потому что у него есть инструмент для создания кубических кривых Безье).С левой стороны я нарисовал грубый эскиз кривой от руки (черный), а затем добавил свою оценку касательных (серый).Наконец, я выбрал две точки на линиях, чтобы быть контрольными точками (зеленый).На правой стороне вы видите то же самое, но кривая была создана с помощью инструмента Paint Bézier, рисуя линию от начальной до конечной точки и затем щелкая две контрольные точки.

Игра с этим должна дать вамлучшее ощущение того, как контрольные точки строят вашу кривую.Например, если вы выбираете контрольные точки дальше от начальной / конечной точки кривой, она будет проходить «плотнее» вдоль серых «контрольных линий».

Bezier curve image

1 голос
/ 04 ноября 2013

Я нашел это, я надеюсь, что это помогает ..

http://www.codeproject.com/Articles/31859/Draw-a-Smooth-Curve-through-a-Set-of-2D-Points-wit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...