Проходя через программу кривой кубического бизера
Я нашел, что он использует конечные точки как (10,10,0) и (0,1,0) и другие контрольные точки как (5,10,2) и (-10, -5, -2). Я не способен понять, как они получили эти другие контрольные точки
пожалуйста, помогите мне с любой формулой или методом, чтобы окупить их
Edit: -
если вы хотите плавно провести кривую Безье через N точек с N > 2, как вы получите промежуточные контрольные точки.
Как рассчитать контрольные точки в кривой кубического бизера
Ответ 1
Как сказал в своем комментарии, в этом вопросе контрольные точки фактически являются входными параметрами кривой Безье. статья wikipedia содержит несколько приятных анимаций, которые визуализируют процесс рисования кривой и использования контрольных точек для нее.
В качестве сводки кубическая кривая Безье состоит из 4 точек. Назовите их Start
, End
, Control1
и Control2
. Кривая начинается с Start
, следуя линии от Start
до Control1
. Но для достижения конечной точки End
он должен отклоняться от этого пути и приближается к линии от Control2
до End
, пока не достигнет точки End
.
Итак, вы можете "вычислить" контрольные точки, которые вам понадобятся для конкретной кривой f.e. путем рисования нужной кривой на листе бумаги. Контрольные точки должны лежать где-то на кривой касательные в начальной и конечной точке, чтобы создать кривую Безье, похожую на ваш эскиз.
Вот иллюстрация, которую я сделал с Paint (что действительно хорошо для игры с этим, потому что у нее есть инструмент для создания кубических кривых Безье). С левой стороны я нарисовал грубый отрисованный рисунок кривой (черный), затем добавил мою оценку касательных (серый). Наконец, я выбрал две точки на линиях как контрольные точки (зеленый). С правой стороны вы видите то же самое, но кривая была создана с использованием инструмента Paint Bézier, рисующего линию от начала до конечной точки, а затем щелкая по двум контрольным точкам.
Игра с этим должна дать вам лучшее представление о том, как контрольные точки строят вашу кривую. Например, если вы выберете контрольные точки дальше от начальной/конечной точки вашей кривой, она будет работать "более жестко" вдоль серых "линий управления".
Ответ 2
Я обнаружил, что, надеюсь, это поможет...
http://www.codeproject.com/Articles/31859/Draw-a-Smooth-Curve-through-a-Set-of-2D-Points-wit