О BSplines и Безье

Я делаю небольшую тестовую программу для рисования и рисую кривые.

Хотя с Безье было довольно легко, я застрял со сплайнами. Как и в первом случае, когда я щелкаю в окне, я добавляю узел, но, честно говоря, я не понимаю, как нарисовать свою кривую отсюда: как мне вычислить значения, как я делаю с Безье (см. ниже)?

///> Coefficient calc in algorithm
///> dT Sampled in [0,1]
///> bla bla bla
vdCoeff[0] = ( 1 - dT ) * ( 1 - dT ) * ( 1 - dT );
vdCoeff[1] = dT *( 1 - dT ) * ( 1 - dT );
vdCoeff[2] = dT * dT * ( 1 - dT );
vdCoeff[3] = dT * dT * dT;
///> bla bla bla

person IssamTP    schedule 07.11.2015    source источник
comment
Вы оставили некоторые предположения в своем вопросе: мы понятия не имеем, какой язык вы используете или о какой разновидности сплайна вы говорите. Также обычно рекомендуется не оставлять код, который не способствует вашей проблеме в том, что вы показываете, например, пустые строки. Нет причин включать их.   -  person Mike 'Pomax' Kamermans    schedule 08.11.2015
comment
Я использую C++, но мне все равно, вы можете ответить мне на Java или псевдокоде. Я ищу BSplines.   -  person IssamTP    schedule 08.11.2015
comment
в этом случае вы забыли выполнить поиск. stackoverflow.com/questions/25379422/b-spline-curves поможет вам, как и несколько других ответов для других языков. (и если вы сначала искали SO и нашли несколько потенциальных вопросов, но ни один из них не касался вашей проблемы, объясните это в своем вопросе)   -  person Mike 'Pomax' Kamermans    schedule 08.11.2015
comment
Алгоритм Google Cox DeBoor для оценки кривой B-сплайна.   -  person fang    schedule 09.11.2015
comment
Я реализовал свою собственную библиотеку B-Spline/NURBS: TinySpline. Он обеспечивает оценку сплайна с использованием алгоритма ДеБура. Если вы хотите реализовать это самостоятельно, взгляните на функцию ts_bspline_evaluate. Возможно, это поможет вам понять, что вам нужно делать. Кроме того, вы найдете очень хорошее объяснение алгоритма ДеБура по адресу: cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline/   -  person Marcel    schedule 15.11.2015